System and method for creating a sensory experience by merging biometric data with user-provided content

ABSTRACT

Systems and methods are provided for using a common “vocabulary,” predefined or dynamically generated based on user-provided content, to transform biometric and/or neurometric data collected from one or more people into a coherent audio and/or visual result. One method comprises receiving a first incoming signal from a bio-generated data sensing device worn by a first user; determining a first set of output values based on the first incoming signal, a common vocabulary comprising a list of possible output values, and a parameter file comprising a set of instructions for applying the common vocabulary to the first incoming signal to derive the first set of output values; generating a first output array comprising the first set of output values; and providing the first output array to an output delivery system configured to render the first output array as a first audio and/or visual output.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application No. 62/885,307, filed Aug. 11, 2019, and U.S. Provisional Patent Application No. 62/846,918, filed May 13, 2019, the entire contents of each application being incorporated by reference herein.

TECHNICAL FIELD

This application generally relates to biometric data, and more specifically, to creating a sensory experience using biometric and/or neurometric data and user-provided content.

BACKGROUND OF THE INVENTION

The increased availability of low-cost portable devices that capture biometric/neurometric input data has prompted a new generation of applications to become available to the general public. The terms biometric and neurometric are used herein to generally encompass all data that is derived from measurements taken of living organisms, whether this be pulse, blood pressure, or brain wave/electroencephalogram (EEG) data, for example. These terms are often used to refer to authentication and security mechanisms, but are used herein in a wider context. This data can now be utilized outside of clinical environments for purposes ranging from entertainment to fitness to health monitoring and diagnostics. Different bio/neurometric data sources can be merged, and devices can also be networked to create a new generation of data uses where the merged data of multiple individuals can be processed in real-time. An example of a new low end EEG system is the Muse 2016, a portable headset developed by Interaxon Corporation to capture both EEG and heart rate in real-time. Software applications have been written to process this data, such as the demonstration application that comes with the Muse system. This application, which runs on Android or iOS devices, is designed to help a person improve their meditation skills. Several other low end EEG systems are also available, some at lower price points than the Muse. These technological advances are putting EEG, Heart Rate Variability (HRV), and other forms of biometric/neurometric data capture in the hands of more individuals than was possible before. Accordingly, there is a need for systems and/or techniques configured to utilize this data in new and useful ways.

SUMMARY OF THE INVENTION

The invention is defined by the appended claims. This description summarizes some aspects of exemplary embodiments and should not be used to limit the claims. Other implementations are contemplated in accordance with the techniques described herein, as will be apparent to one having ordinary skill in the art upon examination of the following drawings and detail description, and such implementations are intended to within the scope of this application.

Systems and methods are provided herein for using brain waves or other bio/neurometric data to enhance a sensory experience by forming a creative circuit between a user's mind and user-provided content. For example, the user may wear an EEG headset for detecting their own brain activity, or other equipment for collecting bio/neurometric (B/N) data from the user. The B/N data can be measured while the user is creating content, such as, e.g., speaking, singing, chanting, drawing, listening, etc., or experiencing an audio-visual event, such as, e.g., a live performance by another person, a pre-recorded performance, playback of an audio and/or video file, etc. Techniques described herein are used to create an enhanced sensory output (e.g., audible sound and/or visual data) by merging or blending the user-provided content with corresponding EEG signals. For example, frequencies and overtones detected in the user-provided audio content can be used as the preferred notes for translating biometric data into musical tones. These techniques can be used to create a feedback loop while the user is producing content (or experiencing the performance) by modifying the output, in real time, as the user continues to produce content (or experience the performance), thus providing a customizable interactive sensory experience. In some cases, the enhanced sensory experience can be stored for future retrieval to allow the user to re-experience the event later. In some cases, the EEG signals can be obtained from one or more listeners, rather than the user/performer that is creating the content, and the modified or enhanced content is presented to the performer (e.g., musician). In other cases, the EEG signals of two people interacting with each other can be blended together and provided to each other as musical outputs or other sensory output. Various other uses cases are also possible, as described herein.

One exemplary embodiment provides a method of creating a coherent output based on biometric and/or neurometric data using a computing device comprising one or more processors and memory. The method comprises receiving a first incoming signal from a bio-generated data sensing device worn by a first user; determining, using the one or more processors, a first set of output values based on the first incoming signal, a common vocabulary stored in the memory, and a parameter file stored in the memory, the common vocabulary comprising a list of possible output values, and the parameter file comprising a set of instructions for applying the common vocabulary to the first incoming signal to derive the first set of output values; generating, using the one or more processors, a first output array comprising the first set of output values; and providing the first output array to an output delivery system configured to render the first output array as a first audio and/or visual output.

According to one or more aspects, the first set of output values comprises output values corresponding to at least a first variable and a second variable, and determining the first set of output values comprises: selecting a first output value from the list of possible output values for the first variable based on a frequency band of the first incoming signal and the parameter file, and selecting a second output value from the list of possible output values for the second variable based on a power level of the first incoming signal and the parameter file. In some aspects, the first and second variables are configured to control rendering of an audio output, the first variable being pitch and the second variable being velocity. In other aspects, the first and second variables are configured to control rendering of a visual output.

According to one or more aspects, the method further comprises obtaining the common vocabulary from the parameter file using the one or more processors, wherein the common vocabulary is pre-defined and stored in the parameter file.

According to one or more aspects, the method further comprises receiving, from an input system, a first input signal representing audio and/or visual content experienced by the first user during receipt of the first incoming signal, and dynamically creating the common vocabulary based on the first input signal, using a spectral analyzer and the one or more processors. According to further aspects, dynamically creating the common vocabulary comprises identifying one or more aspects of the first input signal using the spectral analyzer, and populating the common vocabulary with one or more values determined based on the identified aspects, using the one or more processors. According to aspects, the one or more aspects include a frequency component and a power component. In some aspects, the one or more values include a pitch value determined based on the frequency component and a velocity value determined based on the power component. In other aspects, the one or more values includes a shape value and a color value determined based on the frequency component and an angle value determined based on the power component.

According to one or more aspects, the method further comprises receiving a second incoming signal from a second bio-generated data sensing device worn by a second user; determining, using the one or more processors, a second set of output values based on the second incoming signal, the common vocabulary, and the parameter file; generating, using the one or more processors, a second output array comprising the second set of output values; and providing the second output array to the output delivery system, the output delivery system being configured to simultaneously render the first and second output arrays as the first audio and/or visual output. In some aspects, the first set of output values comprises a first channel value for indicating a MIDI channel assigned to the first output array associated with the first user, and the second set of output values comprises a second channel value for indicating a MIDI channel assigned to the second output array associated with the second user. According to further aspects, the method further comprises receiving a second input signal, from an audio/visual input system, representing content produced by the second user, and dynamically creating the common vocabulary based on the second input signal using a spectral analyzer and the one or more processors.

According to one or more aspects, the method further comprises generating a feedback output array upon receiving a feedback signal from the first bio-generated data sensing device, the feedback signal being generated responsive to the first user experiencing the first audio and/or visual output, wherein the feedback output array comprises a set of output values determined based on the feedback signal, the common vocabulary, and the parameter file, and wherein the feedback output array is provided to the output delivery system for rendering the feedback output array as a second audio and/or visual output. According to further aspects, the method further comprises receiving, from an audio/visual input system, an input signal representing user-provided content, and dynamically creating the common vocabulary based on the input signal using a spectral analyzer and the one or more processors. In some aspects, the user-provided content is spoken word recited by the first user for creating a hypnotic suggestion. In other aspects, the user-provided content is an audio track.

According to one or more aspects, the first set of output values includes Musical Instrument Digital Interface (“MIDI”) data, the MIDI data comprising a MIDI pitch number, a MIDI velocity number, and a MIDI channel number.

Another exemplary embodiment provides a system comprising a first bio-generated data sensing device worn by a first user and configured to detect a first electrical signal representing biometric and/or neurometric data of the first user; a memory configured to store a parameter file and a common vocabulary; one or more processors configured to: determine a first set of output values based on the detected signal, the common vocabulary, and the parameter file, and generate a first output array comprising the first set of output values; and an output delivery system configured to render the first output array as a first audio and/or visual output, wherein the common vocabulary comprises a list of possible output values, and the parameter file comprises a set of instructions for applying the common vocabulary to the detected signal to derive the first set of output values.

According to one or more aspects, the first bio-generated data sensing device is a headset configured to collect electroencephalography (“EEG”) signals of the first user.

According to one or more aspects, the output delivery system comprises an audio engine configured to generate an audio output signal based on the first output array and provide said signal to an audio output device. In some aspects, the first set of output values comprises Musical Instrument Digital Interface (“MIDI”) data for rendering an audio output, the MIDI data comprising a MIDI pitch number, a MIDI velocity number, and a MIDI channel number.

According to one or more aspects, the output delivery system comprises a visual engine configured to generate a visual output signal based on the output array and provide said signal to a display device. In some aspects, the first set of output values corresponds to a plurality of visual variables for rendering a visual output, the visual variables comprising geometric shape, color, and angle.

According to one or more aspects, the system further comprises an input system configured to provide user-provided content to the one or more processors, and a spectral analyzer configured to identify one or more aspects of the user-provided content, wherein the one or more processors is further configured to generate the common vocabulary based on the identified aspects. In some aspects, the input system comprises a microphone configured to capture audio signals representing an audio component of the user-provided content. In some aspects, the input system comprises a camera configured to capture video signals representing a visual component of the user-provided content.

According to one or more aspects, the system further comprises a second bio-generated data sensing device worn by a second user and configured to detect a second electrical signal representing biometric and/or neurometric data of the second user, wherein the one or more processors is further configured to determine a second set of output values based on the second electrical signal, the common vocabulary, and the parameter file, and generate a second output array comprising the second set of output values, and wherein the output delivery system is further configured to simultaneously render the first and second output arrays as the first audio and/or visual output. In some aspects, the first set of output values comprises a first channel value for indicating a MIDI channel assigned to the first output array associated with the first user, and the second set of output values comprises a second channel value for indicating a MIDI channel assigned to the second output array associated with the second user.

According to one or more aspects, the one or more processors is further configured to: generate a feedback output array upon receiving a feedback signal from the first bio-generated data sensing device, the feedback signal being generated responsive to the first user experiencing the first audio and/or visual output, wherein the feedback output array comprises a set of output values determined based on the feedback signal, the common vocabulary, and the parameter file, and wherein the output delivery system is further configured to render the feedback output array as a second audio and/or visual output.

According to one or more aspects, the common vocabulary comprises a pitch vocabulary for selecting different musical notes based on different frequency bands of the detected signal.

According to one or more aspects, the common vocabulary comprises a shape vocabulary for selecting different visual characteristics based on various aspects of the detected signal.

While certain features and embodiments are referenced above, these and other features and embodiments of the invention will be, or will become, apparent to one having ordinary skill in the art upon examination of the following figures and detailed description. It is intended that all such additional embodiments and features included within this description, be within the scope of the present invention, and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. In the drawings, like reference numerals designate corresponding parts throughout the several views.

FIG. 1 is a block diagram depicting an exemplary creative circuit system for capturing bio/neurometric data and producing a coherent output based thereon, in accordance with embodiments.

FIG. 2 is a block diagram depicting an exemplary creative circuit module configured for real-time processing of captured bio/neurometric data and producing a coherent output based thereon, in accordance with embodiments.

FIG. 3 is a block diagram depicting an exemplary creative circuit module configured for “playback” processing of previously-recorded bio/neurometric data and producing a coherent output based thereon, in accordance with embodiments.

FIGS. 4A and 4B are flowcharts depicting exemplary operations for concurrently processing multiple threads of bio/neurometric data using a common, pre-defined vocabulary and parameter file and producing coherent musical outputs based thereon, in accordance with embodiments.

FIG. 5 is a block diagram depicting an exemplary creative circuit system for creating a feedback loop, in accordance with embodiments.

FIG. 6 is block diagram depicting another exemplary creative circuit system for creating a feedback loop, in accordance with embodiments.

FIG. 7 is a block diagram depicting an exemplary creative circuit system for creating a feedback loop while two users are interacting with the system, in accordance with embodiments.

FIG. 8 is a block diagram depicting an exemplary creative circuit system for creating a feedback loop while two users are interacting with the system and experiencing a live performance, in accordance with embodiments.

FIG. 9 is a block diagram depicting an exemplary creative circuit system comprising multiple bio/neurometric data collection devices for gathering data simultaneously and output devices for presenting a combined, coherent, visual and audible output to the user based thereon, in accordance with embodiments.

FIG. 10 is a flowchart depicting exemplary operations for concurrently processing multiple threads of bio/neurometric data using a common vocabulary derived from spectral analysis of live audio input, and simultaneously producing coherent video and audible outputs based thereon, in accordance with embodiments.

FIG. 11 is a flowchart depicting exemplary operations for mapping bio/neurometric data to appropriate audio representations using parameter file and vocabulary datastore, in accordance with embodiments.

FIG. 12 is a flowchart depicting exemplary operations for mapping bio/neurometric data to appropriate visual representations using parameter file and vocabulary datastore, in accordance with embodiments.

FIG. 13 is a flowchart depicting exemplary operations for creating a feedback loop while a single user is creating audio content and listening to an audio output generated based on the audio content and bio/neurometric data obtained from the user while performing, in accordance with embodiments.

FIG. 14 is a block diagram depicting an exemplary creative circuit system for processing multiple input sources using targeting logic, in accordance with embodiments

FIG. 15 depicts a table describing exemplary parameters in a parameter file that may be used to generate audio and/or video outputs, in accordance with embodiments.

FIGS. 16A, 16B, and 16C depict a table describing exemplary parameters that may be used by a processing plug-in to generate audio and/or video outputs, in accordance with embodiments.

FIGS. 17A and 17B depict a table describing example uses of a creative circuit system, in accordance with embodiments

FIG. 18 depicts the contents of an exemplary parameter file, in accordance with embodiments.

DETAILED DESCRIPTION

The description that follows describes, illustrates and exemplifies one or more particular embodiments of the present invention in accordance with its principles. This description is not provided to limit the invention to the embodiments described herein, but rather to explain and teach the principles of the invention in such a way to enable one of ordinary skill in the art to understand these principles and, with that understanding, be able to apply them to practice not only the embodiments described herein, but also other embodiments that may come to mind in accordance with these principles. The scope of the present invention is intended to cover all such embodiments that may fall within the scope of the appended claims, either literally or under the doctrine of equivalents.

Embodiments described herein include a system that allows biometric/neurometric data (also referred to herein as “bio/neurometric data”) to be transformed into audio and visual artistic and/or therapeutic works, including a capability to adjust to brain responses in real-time, thus producing audio and visual output that becomes more and more impactful, as the user (or users) learn what brain waves produce their favorite results and control the output consciously or unconsciously, for example. This interaction between the system and the user can be described as creating a circuit, hence the name Creative Circuit. The system may be part of a suite of tools introduced under the name Theta-u, hence the name Theta-u Creative Circuit System (TCCS).

The advances described above also lay the groundwork for merging different biometric data sources, and networking multiple devices to create a new generation of bio/neurometric data uses where the data of multiple individuals can be processed in real-time and output in the form of sound, images, or other output modes. In order to allow these new network-enabled capabilities to produce a coherent, useful result, a common structure underlying the multiple streams of data is provided. For example, multiple individuals can wear EEG headsets, and the data coming from these headsets can be processed in a manner that produces sound which varies in pitch or amplitude according to the brain waves, as described for instance in U.S. Pat. No. 10,369,323, and/or visual stimuli with the generated images varying according to the fluctuations in EEG data. But if such a configuration was created and the resulting audio or video stream played or displayed, it is likely that the result would be chaotic and with limited usefulness, since the likelihood that these multiple streams would produce a coherent audio or visual result is quite low. For our purposes, we describe audio or visual stimuli as “coherent” when it conforms at least loosely to one of the concepts we use to process sound and images in a given culture, either as music or language in the case of audio, or as an image, or with geometric consistency or symbolic association in the case of images. Even within one stream, the result in our example would not have a structure which we would find coherent in this sense, since it would conform to none of the rules we have formed for music or language or meaningful visual images for our particular culture.

The system described here provides that underlying structure that will make streams of output data both internally coherent and coherent with one another, through the mapping of the bio/neurometric data to a sonic and visual “vocabulary.” The term vocabulary is usually used in connection with simply words or phrases, but can also be used in an artistic sense, as in a musical vocabulary. For instance, when jazz musicians improvise against a song, they are often following a set of rules which dictate what chords and tones are meant to be stressed at each point in the song. Simplified, a song might be in the key of D, and in that case the pitch “vocabulary” of the song centers around the tones of the D major scale: D, E F♯, G, A B C♯. Similarly, the system described herein maps bio/neurometric data to a sonic vocabulary which is expressed as a collection of musical pitches (or a set of possible values for the pitch variable), as well as via harmonic and rhythmic element, as well as a visual vocabulary which is expressed as a collection of shapes, colors and angle (or a set of possible values for each of these variables). Using this system, multiple individuals could wear the EEG headsets as described above, and produce a musically coherent merged result. Also, a single individual could process different data streams, each emanating from just one person, and produce a coherent result. The system also provides a mechanism for mapping bio/neurometric data to a visual or image vocabulary which is expressed as a collection of visual symbols, shapes, dimensions, angles, or other geometric constructs. Using this system, multiple individuals could wear the EEG headsets as described above, and produce a musically and visually coherent merged result. Also, a single individual could process different data streams, each emanating from just one person, and produce a musically and visually coherent result.

Regarding creation of audio textures, the human ear can hear frequencies in the approximate range of 20 hertz (Hz) to 18 kilohertz (kHz). We start with the principle that given an x and y axis, with x being time, all time series data can be made into frequency data in this range by performing a function on the y axis values that transforms the data into this range. For instance, an EEG system might record frequency at an electrode site of 3 Hz (e.g., determined by Fast Fourier Transform (FFT) from raw EEG). By applying a scale factor, this rate can be transformed into a range within human hearing range, for instance, by multiplying by 100 to get a 300 Hz value. Any y-axis data can be used, not just EEG frequency. For example, suppose we are plotting raw EEG time series data, where the y-axis is power in microvolts (μV) of a signal at a given electrode site on the scalp. If the average values are in the range 0.3 μV to 1.5 μV, again we can apply a scale factor to bring these numbers into, for example, the range 51-880 hertz (Hz), or the frequency range A1 to A5 on a piano keyboard, and use the resulting values as frequency data to drive a piece of music. The values could even be outside of the realm of bio/neurometric data, such as, for example, data plotting stock prices or foreign exchange rates of currency pairs. Any time series data can be transformed by a scaling function and used as frequency data. Similarly, for production of visual textures, a data point in a time series can be interpreted as a visually accessible data value, such as, a point on a line, or a color or a rotation.

By applying these principles for audio and visual transformations, bio/neurometric time series data can be translated into for instance a creative animation that is synchronized with the audio component with the same data source driving the creation. Once an individual or groups' brain activity is rendered as auditory or visual stimuli in this manner, it can influence both the person/people producing the output and others, creating feedback loops as an individual responds to his own rendered brain output which changes his thought process which in turn changes the output. This is what we refer to as a Creative Circuit. The system described herein implements this concept through software-based processing of signals from one or more bio/neurometric data capture devices combined with audio and/or visual input, and linking these input streams via a common “vocabulary” creating output signals that can be rendered as audio or video textures that form a coherent whole when played or viewed together.

The generality of the system, allowing it to process multiple different forms of bio/neurometric data, comes from two main architectural features: the provision for use of custom parameters which can represent any domain value or type of data desired, for instance, heart rate in the case of HRV data and microvolts (μV) in the case of EEG power, combined with use of a “plug-in” architecture that allows custom functions to be written to handle this arbitrary bio/neurometric data. The examples given in this document illustrating, for instance, a function to calculate pitch from EEG power, should not be taken to be any more than examples, to show possible embodiments of the invention.

According to embodiments, the vocabulary described herein may be stored in a vocabulary database that is either pre-populated (i.e. static) with a common vocabulary, or dynamically populated with a real-time vocabulary based on an analysis of incoming data, audio and/or visual (e.g., from a live performance). In the case of static vocabulary, the vocabulary datastore information may be stored or held in the parameter file and may be represented by arrays of notes, for example, or a list of possible output values for each variable represented in the vocabulary. In the case of real-time vocabulary, the vocabulary datastore information may be stored or held in a separate file capable of being dynamically populated or updated, such as, for example, a JSON file containing JSON arrays, with each JSON object representing a note. Which vocabulary datastore implementation is chosen can be based on system requirements, such as, e.g., performance and ease of access. In some embodiments, the vocabulary datastore may be implemented as a database, such as, e.g., relational, document-oriented, or other suitable database types.

FIG. 1 depicts an exemplary creative circuit system 100 configured to capture bio/neurometric data from a user and produce a coherent audio and/or visual output based thereon, in accordance with embodiments. As shown, the creative circuit system 100 (also referred to herein as “Theta-u creative circuit system” or “TCCS”) comprises at least one bio/neurometric (or B/N) data collector 102 and at least one bio/neurometric data receiver 104 communicatively coupled to the data collector 102 for receiving a data feed therefrom. The exact number of data collectors 102 and data receivers 104 may be depend on the number of users simultaneously using the creative circuit system 100 and/or a functional capacity of the system 100. The creative circuit system 100 further comprises a computing device 106 communicatively coupled to the B/N data receiver 104 for processing bio/neurometric data obtained from the (or each) data receiver 104 and generating an output based thereon. In some embodiments, the computing device 106 can be configured to simultaneously process multiple streams of data from multiple users, and produce a combined output based on all said streams.

The B/N data collector 102 (also referred to herein as a “bio-generated data sensing device”) is configured to capture or detect electrical signals representing a biometric and/or neurometric response of a user (e.g., human) wearing the data collector 102, or otherwise connected thereto. The B/N data collector 102 can be implemented in hardware, software, or a combination thereof, and can include any type of device or system capable of capturing an input representing bio-generated data, or biometric and/or neurometric data, such as, for example, heart rate, galvanic skin response, brain wave/EEG activity, muscle movement, eye movement, blood pressure, breath measurements, or the like.

For example, in some embodiments, the B/N data collector 102 includes an electroencephalography (EEG) system, including electrodes configured for placement along the scalp of a wearer, for sensing and recording an electrical activity of the brain of the wearer. In some cases, the B/N data collector 102 may include one or more systems for collecting data related to heart activity, such as, e.g., a photoplethysmography (PPG) system, including a light source and a photodetector configured for placement at the surface of the wearer's skin, for measuring and monitoring a heart rate of the wearer, and/or a pulse oximetry system, including a probe configured for placement on a finger, ear lobe, or other suitable body part, for measuring an oxygen level in the blood of the wearer. In some instances, the PPG system may also be used to measure a breathing activity of the wearer. In some cases, the B/N data collector 102 may include one or more accelerometers for detecting muscle and other body movements of the wearer. In some cases, the B/N data collector 102 may include all of the above-listed biometric data collection systems and devices, or any other combination thereof. In one exemplary embodiment, the B/N data collector 102 is an EEG headset that captures EEG data and other biometric data of a user wearing the headset, such as, for example, the “Muse 2” headset manufactured by Interaxon Corporation.

The B/N data collector 102 is further configured to transmit the captured signals to the B/N data receiver 104 using a wired or wireless connection (e.g., Bluetooth, WiFi, and the like). In a preferred embodiment, the data collector 102 uses Bluetooth technology to send the data feed to the data receiver 104. The B/N data collector 102 may include a communications module configured to communicate with the B/N data receiver 104. For example, said communications module may include one or more transmitters, receivers, antennas, modems, and other circuitry for carrying out the communication features described herein.

The B/N data receiver 104 is configured to receive a data feed from the data collector 102 and provide the received data to the computing device 106. The B/N data receiver 104 (also referred to as a “receiver node”) can be implemented in hardware, software, or a combination thereof, and can be any type of electronic device or system with an interface capable of communicating with the B/N data collector 102 and processing the received data. For example, the B/N data receiver 104 may be a mobile or portable device (e.g., smartphone, smartwatch or other connected wearable device, personal digital assistant (PDA), MP3 player, gaming device, tablet, laptop computer, etc.), or a non-portable or stationary electronic computing device (e.g., a desktop computer, a server computer, etc.). In a preferred embodiment, the B/N data receiver 104 is a smartphone operating on an Android platform from Google, Inc. In other embodiments, the data receiver 104 may be a smartphone operating on iOS from Apple Inc., Windows Phone from Microsoft Corporation, Symbian from Nokia Corporation, or other suitable platform or operating system.

In some embodiments, the B/N data receiver 104 is configured to store and/or execute a software application 122 for interfacing with the B/N data collector 102 and receiving bio/neurometric data therefrom. In some cases, this software application 122 is proprietary software provided by the makers of the particular B/N data collector 102 being used. In other cases, the software application 122 may be a readily-available, third-party application configured for use with an existing biometric data collection device, such as, e.g., the “Mind Monitor Application” designed for use with the Interaxon Muse headset, which is shown and described at the website “mind-monitor.com”, the contents of which are incorporated by reference herein. In still other embodiments, the software application 122 may be novel software developed for use with any type of B/N data collector 102 connected to the creative circuit system 100.

Though not shown in FIG. 1, the B/N data receiver 104 may include a memory configured to store the software application 122, a processor configured to execute the application 122, and a communications module configured to communicate with the B/N data collector 102 and the computing device 106, as well as other components for carrying out the operations described herein. The communications module, in particular, may include one or more transmitters, receivers, antennas, modems, and other circuitry for carrying out the communication features described herein.

The B/N data receiver 104 can be configured to transmit the bio/neurometric data received from the B/N data collector 102 to the computing device 106 using an appropriate communication protocol. In a preferred embodiment, the data receiver 104 transmits this data to the computing device 106 over a WiFi network using an Open Sound Control (OSC) protocol, which is shown and described at the website “opensoundcontrol.org/introduction-osc”. the contents of which are incorporated by reference herein. Other types of wireless or wired communication protocols compatible with transmitting bio/neurometric data in real-time (or near real-time) may also be used, as will be appreciated.

Likewise, the computing device 106 can be communicatively coupled to the B/N data receiver 104 via a wired connection (e.g., USB, Ethernet, or other data cable) or a wireless connection (e.g., WiFi, Bluetooth, cellular, or other wireless technology). The computing device 106 may include a communications module (not shown) configured to communicate with the B/N data receiver 104. For example, said communications module may include one or more transmitters, receivers, antennas, modems, and other circuitry for carrying out the communication operations described herein.

According to embodiments, the computing device 106 comprises a creative circuit module 108 configured to process the received bio/neurometric data of the user and determine an output based thereon. The creative circuit module 108 may include one or more software applications and/or programming code comprising a set of instructions to be performed by one or more processors 124 of the computing device 106 in order to implement steps and/or elements for carrying out the techniques described herein.

The computing device 106 may be any type of electronic device capable of supporting the creative circuit module 108 or otherwise processing the bio/neurometric data received via the data receiver 104. For example, the computing device 106 may be a desktop computer, a server computer, a laptop computer, a tablet, or the like. In one embodiment, the computing device 106 is a Mac Pro computer from Apple, Inc. In other embodiments, the computing device 106 may be implemented as a distributed computing system comprising a plurality of computers or other computing devices in communication with each other over a network. In another embodiment, the computing device 106 and the B/N data receiver 104 may be integrated into one device configured to receive the bio/neurometric data directly from the B/N data collector 102, process the same, and generate an output based thereon.

In some embodiments, the computing device 106 is configured to operate as a network server that uses the creative circuit module 108 (also referred to as a “TCCS server application”) to simultaneously process multiple streams of bio/neurometric data of various users. For example, the computing device/network server 106 may include an interface configured to communicate with multiple B/N data receivers 104 (or receiver nodes) at once, each data receiver 104 conveying bio/neurometric data received from a separate B/N data collector 102.

According to embodiments, the creative circuit module 108 may include logic for receiving the incoming bio/neurometric data and may use one or more algorithms (for example, as specified by processing plug-in 206 shown in FIG. 2), in conjunction with a parameter file and a vocabulary datastore, to process the incoming data. The vocabulary datastore can be shared by multiple threads or streams of incoming data to produce an output, which can then be rendered as audio and/or video. In some cases, the creative circuit module 108 may also include an aggregation component (e.g., within TCCS harness 202 shown in FIG. 2) for processing and/or combining multiple data streams before producing the output.

In some embodiments, the creative circuit module 108 also receives audio and/or visual inputs (also referred to herein as “user-provided content”) from an audio/visual input system 109 included in the system 100 and is configured to incorporate those inputs into its output. For example, as shown in FIG. 1, the input system 109 may comprise an audio input device 110, such as, e.g., a microphone or other audio device for capture audio data or signals generated by, or otherwise associated with, the user. As also shown, the input system 109 may also comprise a visual or video input device 112, such as, e.g., a camera, video recorder, webcam, or other video device for capturing images, video, or other visual data generated by or associated with the user.

In such cases, the creative circuit module 108 may be configured to apply algorithms, as described herein, to map the received bio/neurometric data to the received audio and visual representations using a vocabulary datastore and parameter file, send resulting instructions to an audio/visual output delivery system 113, and modify metadata to change the processing behavior of these algorithms in real-time based on the incoming data. In some cases, the audio/visual inputs may represent live data being recorded by the input system 109 and streamed to the creative circuit module 108 in real-time (or near real-time), such as, e.g., a live vocal (e.g., singing, spoken word, etc.) and/or musical performance being produced by the user, or being produced by another individual and experienced by the user. In other cases, the audio/visual inputs may represent previously-recorded data that was captured by the same devices, or data stored in a memory of the input system 109 and/or the computing device 106, such as, e.g., playback of an audio track or video file.

In some embodiments, the input system 109 comprises a plurality of audio input devices 110 and/or a plurality of visual input devices 112 and is configured to record and/or stream live audio and/or video from multiple sources (or users). In such cases, the multiple data streams may be sent to the aggregation component of the creative circuit module 108 before being processed further.

In some cases, the audio input device 110 and the visual input device 112 may be combined into a single device, such as, e.g., a video camera or the like. In other cases, each of the audio input device 110 and the visual input device 112 may operate independently and therefore, may have a separate connection to the computing device 106, as shown. Either way, each of the audio input device 110 and the visual input device 112 may be communicatively coupled to the computing device 106 using a wired (e.g., USB, etc.) or wireless (e.g., Bluetooth, WiFi, cellular, etc.) connection.

In other embodiments, one or more of the audio input device 110 and visual input device 112 may be included in the B/N data receiver 104 or communicatively coupled thereto. In such cases, the B/N data receiver 104 may transmit the bio/neurometric data feed to the computing device 106 along with the audio/visual data feed using one or more appropriate communication protocols, and the creative circuit module 108 may be configured to receive and process both types of data. In still other embodiments, one or more of the audio input device 110 and the visual input device 112 may be included in the computing device 106, for example, as a native microphone and/or camera system.

The audio/visual output delivery system 113 can be configured to receive signals from the creative circuit module 108 or other components of the computing device/network server 106, and render audio and/or visual outputs in accordance with those signals. The output delivery system 113 may include at least one of an audio output device 114 for playing an audio output (e.g., music, voice, etc.) and a visual output device 116 for displaying a visual output (e.g., images, videos, etc.). Delivery via these devices 114 and 116 may be the last step in providing an audio and/or visual output according to the signals sent to the output system 113 by the creative circuit module 108.

In embodiments, one or more components of the output delivery system 113 may be included within the computing device 106, or may be communicatively coupled thereto, as shown in FIG. 1. For example, in some embodiments, the visual output device 116 may be an external monitor communicatively coupled to the computing device 106 (e.g., via an HDMI cable or the like). In other embodiments, the visual output device 116 may be a native display screen of the computing device 106, or otherwise integral thereto. Likewise, in some embodiments, the audio output device 114 may be an external speaker system or personal listening device communicatively coupled to the computing device 106 (e.g., via an audio cable or a wireless connection, such as Bluetooth). In other embodiments, the audio output device 114 may be native or internal speakers of the computing device 106, or otherwise integral thereto.

As also shown in FIG. 1, the output delivery system 113 further comprises one or more processing components for generating the audio and/or visual output according to the instructions supplied by the creative circuit module 108. In particular, an audio production module 118 may be configured to generate an audio output and provide it to the audio output device 114 in order to play the audio output for the user. Likewise, a graphics/animation engine 120 may be configured to generate a visual output and provide it to the visual output device 116 in order to display the visual output for the user. These components may be implemented in hardware, software, or a combination thereof. In some embodiments, the audio production module 118 and/or the graphics/animation engine 120 may be integrated into, or form one of the components of, the creative circuit module 108, such as, e.g., audio/visual engine 619 shown in FIG. 6.

In some embodiments, the creative circuit module 108 is configured to generate corresponding Musical Instrument Digital Interface (“MIDI”) data based on the received B/N data feed and send instructions to the audio production module 118 in MIDI format. The audio production module 118 is configured to process the incoming MIDI data and generate an appropriate audio output signal based thereon. And the resulting audio output signal is played back to the user via the audio output device 114. In one embodiment, the audio production module 118 may be implemented using a digital audio workstation, such as, e.g., Logic Pro by Apple Inc., or other compatible software program for recording, editing, and/or producing audio files, including MIDI files.

As an example, the MIDI format instructions generated by the creative circuit module 108 may specify parameter values for channel (e.g., 0 to 15), pitch (e.g., 0 to 127), and velocity (e.g., 0 to 127), and may indicate control of a note length by sending “note_on” and “note_off” instructions, or the like. For example, the note may begin playing once the NoteOn message is received and may continue to play until the NoteOff message is received, thus setting the length of the note. The velocity value may be indicated as a separate variable sent with the NoteOn message (e.g., velocity=90). Tempo may also be set by a separate temp variable to include the speed of a quarter note, as will be appreciated. In some embodiments, the channel parameter allows a processing plug-in of the creative circuit module 108 to instruct the audio production module 118 to play different tones on different software instruments. For example, channel 1 may be assigned to a saxophone, channel 2 to a piano, channel 3 to a drum, etc. As a result, in embodiments that include a plurality of B/N data collectors 102, each data collector 102 can be mapped to a different channel, such that the B/N data of each user can be represented by a different instrument or sound in the audio output produced by the system 100.

The creative circuit module 108 may also generate visual output data and use the Open Sound Control (“OSC”) protocol, or other communication protocol, to send the visual output data to the graphics/animation engine 120. This engine 120, in turn, may be configured to convert the OSC to a visual representation. For example, the graphics/animation engine 120 may be configured to use a library designed to handle OSC data to receive the visual output data provided by the creative circuit module 108 and provide custom logic to render this data as moving geometric designs. One example of such a library is shown and described in the website found at “thomasfredericks.github.io/UnityOSC/”, the contents of which are incorporated by reference herein. In some embodiments, each receiver node/data receiver 104 may establish a connection to the network server/computing device 106 using User Datagram Protocol (“UDP”) or other appropriate communications protocol, and may send the bio/neurometric data to the network server 106 using the OSC protocol. In one embodiment, the graphics/animation engine 120 is a Unity engine comprising software written in C# programming language.

As shown in FIG. 1, the computing device 106 comprises one or more processors 124 and memory 126. In some embodiments, the one or more processors 124 and memory 126 may be dedicated to carrying out operations associated with the creative circuit module 108, as illustrated. In other embodiments, the processor(s) 124 and memory 126 may be part of the larger computing device 106, and memory 126 may be configured to store the creative circuit module 108, or the software used to implement said module 108, along with other software.

The one or more processors 124 can be a hardware device for executing software, particularly software stored in the memory 126. For example, during operation of the creative circuit module 108, the processor(s) 124 may be configured to retrieve software instructions stored in memory 126 for implementing the creative circuit module 108, and execute the same to carry out desired operations. The processor(s) 124 can be any custom made or commercially available processor, such as, for example, a Core series or vPro processor made by Intel Corporation, or a Phenom, Athlon or Sempron processor made by Advanced Micro Devices, Inc. In the case where computing device 106 is a server, the processor(s) 124 may be, for example, a Xeon or Itanium processor from Intel, or an Opteron-series processor from Advanced Micro Devices, Inc. The one or more processors 124 may also represent multiple parallel or distributed processors working in unison.

Memory 126 can include any one or a combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and nonvolatile memory elements (e.g., ROM, hard drive, flash drive, CDROM, etc.). It may incorporate electronic, magnetic, optical, and/or other types of storage media. Memory 126 can have a distributed architecture where various components are situated remote from one another, but are still accessed by processor(s) 124. These other components may reside on devices located elsewhere on a network or in a cloud arrangement.

Software stored in memory 126 may include one or more separate programs. The separate programs comprise ordered listings of executable instructions for implementing logical functions. In embodiments, memory 126 may be configured to store software instructions for implementing the creative circuit module 108. Such software may be written in any suitable computer programming language, such as, e.g., C, C++, C#, Pascal, Basic, Fortran, Cobol, Perl, Java, Ada, Python, and Lua, or a proprietary language developed to interact with these known languages. In a preferred embodiment, the creative circuit module 108 comprises one or more software applications written in Python.

Various components of the system 100 shown in FIG. 1 may be implemented using software executable by one or more servers, computers, or other computing devices using a processor and a memory included therein, such as, e.g., the processor(s) 124 and memory 126 shown in FIG. 1. In addition, some aspects of the invention described herein may be implemented through interactions between the various components of the system 100, the interactions also being facilitated by software executing on one or more computer processors associated with said components. As an example, FIGS. 2 and 3 illustrate exemplary software components that may be used to implement some of these interactions with the creative circuit module 108 of the system 100. Other software components may also be used, as will be appreciated.

FIG. 2 illustrates an exemplary creative circuit module 200 comprising various software components for implementing real-time processing of incoming bio/neurometric data and live user-provided content, in the form of audio and/or video data, production of a coherent output based thereon, and recording of the received data for playback at a later time, in accordance with embodiments. The creative circuit module 200 may be representative of the creative circuit module 108 shown in FIG. 1. As shown, the creative circuit module 200 (also referred to as a “TCCS module”) comprises a processing harness 202, a bio/neurometric data listener 204, a processing plug-in 206, an audio engine 208, a visual engine 210, and a file manager 212. The creative circuit module 200 may also include other components not shown in FIG. 2, such as, e.g., an aggregation component.

In embodiments, the processing harness 202 (also referred to as a “TCCS harness”) may be a software component configured to coordinate the activities of the other underlying components of the module 200. In particular, the processing harness 202 may be configured to initialize the creative circuit module 200 based on pre-defined parameters (also referred to as “TCCS parameters”) stored in a parameter file, start an input data stream (e.g., by instructing the bio/neurometric data listener 204 to start receiving bio/neurometric (B/N) data from a user and/or sending received data to the harness 202), dispatch or send the received bio/neurometric data to the processing plug-in 206, receive an output array (also referred to as “OutputArray”) generated based on the received data from the processing plug-in 206, and send the output array to the audio engine 208 and the visual engine 210 for output generation.

The B/N data listener 204 is configured to receive bio/neurometric data from source equipment worn by a user, such as, e.g., the B/N data collector 102 shown in FIG. 1 and described herein, or other B/N data collection device. As shown, the B/N data listener 204 is further configured to send the received data to the processing harness 202 as an input data stream, in order to make the data available for real-time processing. The B/N data listener 204 also sends the received data to the file manager 212 in order to write the data to a file for future analysis and processing.

The processing plug-in 206 is configured to receive bio/neurometric data from the processing harness 202, analyze each incoming data sample, create appropriate output data values based on the analysis of the input data and an application of the parameters stored in the parameter file, and produce an output array comprising values configured to describe the output to be rendered.

The audio engine 208 is configured to receive the output array, or more specifically, an audio output array comprising values configured to describe the audio output to be rendered, from the processing harness 202, and render an appropriate audio output based thereon. The audio output array may include MIDI values selected based on the received B/N data, as described herein. In some embodiments, the audio engine 208 includes a preconfigured multi-track setup that receives the MIDI instructions and converts them into sound in accordance with the instrumentation choices included in the MIDI file. In some embodiments, the audio engine 208 may be the audio production module 118 shown in FIG. 1 and may be in communication with the audio output device 114 for delivery of the audio output to the user. In other embodiments, the audio engine 208 may be configured to communicate the audio output array to the audio production module 118, which in turn renders the audio output via the audio output device 114.

Likewise, the video engine 210 is configured to receive the output array, or more specifically, a visual output array comprising values configured to describe the visual output to be rendered, from the processing harness 202, and render an appropriate visual output based thereon. In some embodiments, the video output may be a preconfigured scene that is driven by data values included in the video output array. For example, the video output array may include data driving parameters, such as, e.g., line length, color, animation speed, object size, and field of view, for changing an appearance of the preconfigured scene based on the received B/N data.

The file manager 212 can be configured to implement file reading and writing services to enable data to be recorded. Said data may be retrieved later, for example, during operation in a playback mode, as shown in FIG. 3. As shown, the file manager 212 may comprise a bio/neurometric data reader 214 (also referred to herein as “data recorder”) for capturing and recording the real-time data stream received from the bio/neurometric data listener 204. In some embodiments, the data recorder 214 is also configured to record user-provided content received via, for example, the audio input device 110 and/or visual input device 112 shown in FIG. 1.

FIG. 3 illustrates an exemplary creative circuit module 300 comprising various software components for implementing “playback” processing of previously-recorded bio/neurometric data and user-provided content, in the form of audio and/or video data, and production of a coherent output based thereon, in accordance with embodiments. The creative circuit module 300 may be representative of the creative circuit module 108 shown in FIG. 1 and may be substantially similar to the creative circuit module 200 shown in FIG. 2, except for the absence of a bio/neurometric data listener. In some embodiments, the creative circuit module 200 may be configured to operate like the creative circuit module 300 shown in FIG. 3 during a playback processing and only operate as shown in FIG. 2 during real-time processing.

As shown in FIG. 3, the creative circuit module 300 comprises a processing harness 302 configured to coordinate the activities of underlying components, similar to the harness 202. In particular, the processing harness 302 may be configured to initialize the creative circuit module 300 based on pre-configured TCCS parameters, open an input file stream (e.g., by requesting the file from file manager 312), dispatch or send bio/neurometric (B/N) data samples to processing plug-in 306, receive an output array from the same, and send the output array to audio engine 308 and visual engine 310.

The file manager 312 can be configured to send a requested file containing pre-corded B/N data to the processing harness 302. The file manager 312 may include a bio/neurometric data reader 314 configured to implement read access to previously recorded B/N data files. In some embodiments, the file manager 312 may have acquired the B/N data files by recording live input data streams, like the file manager 212 shown in FIG. 2.

The processing plug-in 306 included in the creative circuit module 300 can be configured to receive B/N data from the processing harness 302 and create output data values based on an analysis of the input data and an application of the parameters in the TCCS parameter file and appropriate vocabulary from the vocabulary datastore, like the processing plug-in 206 shown in FIG. 2. The output values can be provided to the processing harness 302 as an output array describing the audio and/or visual output to be rendered.

The audio engine 308 of the creative circuit module 300 receives the output array from the processing harness 302, or an audio output array portion thereof, and renders an audio output based thereon, similar to the audio engine 208. The audio output array can include MIDI values or instructions that are plugged into a preconfigured multitrack setup included in the audio engine 308. This setup renders sound according to the instrumentation choices in the received MIDI file.

Likewise, the visual engine 310 is configured to receive the output array from the processing harness 302, or more specifically a visual output array portion thereof, and render a visual output based thereon, similar to the video engine 210. The video engine 310 may include a preconfigured scene that can be driven by the received output data. For example, the visual output array may include data driving parameters such as, e.g., line length, color, animation speed, object size, and field of view.

FIG. 4A illustrates an exemplary process 400 for concurrently processing multiple threads or streams of bio/neurometric data using a common predefined vocabulary and parameter file, in accordance with embodiments. The process 400 may be carried out using one or more components of a creative circuit module, such as, e.g., the module 200 shown in FIG. 2, or using any computing device having corresponding software stored on a computer readable medium and executable by one or more computer processors. While FIG. 4A specifically shows concurrent processing of data streams obtained from two separate human subjects, it should be appreciated that the incoming data of three or more human subjects may be concurrently processed using similar techniques.

As shown, the process 400 may begin with a bio/neurometric data listener 402, such as, e.g., the data listener 204 shown in FIG. 2, providing the incoming data streams or threads from individual human subjects to a TCCS dispatcher 404, such as, e.g., the TCCS harness 202 shown in FIG. 2. The data listener 402 may be configured to make multiple connections to multiple data collection devices (such as, e.g., B/N data collector 102 shown in FIG. 1), and hence multiple human subjects.

The TCCS dispatcher 404 assigns a respective one of a plurality of processing plug-ins 406 and 408 to each human subject and provides the corresponding thread to the identified processing plug-in (“PPI”). As shown, each plug-in 406, 408 also receives parameters from a TCCS parameter file 410, which may provide common pitch and/or rhythm data, or vocabulary, to be used for both threads. As shown, the process 400 enables concurrent processing of both data threads, thus producing simultaneous outputs that are musically coherent.

As shown, the TCCS system (e.g., creative circuit module 200/300) makes use of parameter files, consisting of name-value pairs, where the value could be a list or a primitive value. An exemplary parameter file 1800 is shown in FIG. 18, for the sake of illustration only. In some cases, a global parameter file is shared by the whole system and is configured to define a common vocabulary to be used by all. For example, FIG. 4A illustrates an embodiment in which the parameter file 410 comprises a vocabulary datastore from which the common vocabulary can be derived, and multiple threads are able to access the same parameter file 410, via processing plug-ins 406 and 408, to make use of the information contained in the file 410.

In some embodiments, each thread can also have its own private parameter file where different parameters are defined, such as, e.g., MIDI channel mappings and log file name. For example, data may be logged separately for each thread in its own log file for troubleshooting purposes, and different MIDI channels may be selected for each thread by including corresponding data values in each private parameter file. In FIG. 4A, for instance, the data for a first human subject (or a first thread) may be fed to a first MIDI channel, which is assigned to a first instrument (e.g., cello), and the data for a second human subject (or a second thread) may be fed to a second MIDI channel, which is assigned to a second instrument (e.g., piano). The processing plug-ins 406 and 408 for both threads can then use the common vocabulary datastore to create a coherent musical output from these threads, such as, for example, a piano-cello duet in the key of D. In such cases, each processing plug-in 406, 408 may provide a separate audio output to the audio engine, and the audio engine can be configured to produce the outputs as individual musical tracks which are played simultaneously to create a single, merged output (e.g., the piano-cello duet). In other embodiments, the data for both threads can be provided to the same MIDI channel, and thus, assigned to the same instrument, and the audio engine can be configured to merge the two audio streams into one audio track (e.g., a piano-piano duet).

FIG. 4B illustrates an exemplary process 420 that may be used by one of the concurrently running processing plug-ins 406, 408 to process incoming data, in accordance with embodiments. Each processing plug-in may receive input data from a given human subject that includes bio/neurometric data, as well as user-provided content, in some cases (such as audio and/or video data). As shown, the process 420 may begin at step 422 with setting vocabulary from the global parameter file (e.g., TCCS parameter file 410), or retrieving the vocabulary terms (or variables) that will be used to render an output based on the incoming B/N data. In the illustrated embodiment, the vocabulary originates from a vocabulary datastore that is included in the parameter file, for example, as shown in FIG. 4A. In such cases, the parameter file may include a collection of variables or data fields representing the common vocabulary. For example, the parameter file may include an array of notes (or “preferredNotesArray”), arranged in name, value pairs, that represents the pitch vocabulary, thus defining the pitches that will be used in the PPI to select a note for incoming data, using the algorithms described herein.

In embodiments, the vocabulary datastore may be implemented as a list, table, or database configured to store a plurality of variables and associated data fields for representing different vocabulary. As an example, in some embodiments, the vocabulary datastore may be a relational database, such as, e.g., MySQL, or document oriented, such as, e.g., Mongo. In some cases, the contents of the vocabulary database may be static, or pre-populated based on human/user input, in order to develop a common vocabulary for all data threads. In such cases, the vocabulary datastore may be included in the common parameter file, for example, as shown in FIG. 4A. In other cases, the contents of the vocabulary database may be dynamically populated in real-time based on spectral analysis of user-provided content, for example, as shown in FIG. 10. In such cases, the vocabulary datastore may exist separately from the parameter file, as also shown in FIG. 10. As an example, the vocabulary datastore may be stored in a file using JSON format or other format that allows vocabulary to be populated in real-time.

The vocabulary datastore may include pitch vocabulary and rhythm vocabulary, in some embodiments. The pitch vocabulary may include, for example, data fields (or name, value pairs) configured to define a first tonal center (or “Tonal Center 1”) representing a D major scale (or the key of D) with pitches D, E, F♯ (or sharp), G, A, B, C♯ (or sharp), and a second tonal center (or “Tonal Center 2”) representing an A major scale (or the key of A) with pitches A, B, C sharp, D, E, F♯ (or sharp), and G♯ (or sharp). The rhythm vocabulary may include, for example, data fields configured to define four preset segments (also referred to herein as “divisions”) for creating a 4 by 4 (or 4/4) time signature (also known as “common time”), and within each segment, data fields to define a number of seconds per note (e.g., each quarter note could have a duration of 0.5 seconds for segment 1, 0.75 seconds for segment 2, and 0.5 seconds for segment 3, for example, as represented by the array {0.5, 0.75 0.5}). In some embodiments, the processing plug-ins 406, 408 may use the rhythm vocabulary to assign different speeds to different EEG bands based on the parameters in the parameter file (e.g., quarter notes may represent samples in the Alpha range, eighth notes may represent samples in the Beta range, etc.)

As shown in FIG. 4B, the vocabulary datastore may also store other types of vocabulary for creating the musical or other audio output, such as, e.g., a melody vocabulary, a harmony vocabulary, etc. In addition, the vocabulary datastore may include one or more types of image vocabulary for creating a visual output.

Referring back to FIG. 4B, step 424 of the process 420 includes selecting one or more values from the rhythm vocabulary based on the input B/N data. For example, the input B/N data may consist of a sample in the Alpha range, and the parameter file 410 may indicate that the speed of a quarter note for this segment should be 0.4 seconds. Thus, the processing plug-in algorithm may be coded such that Alpha data is rendered as eighth notes, resulting in a calculated note length of 0.2 seconds.

Step 426 includes selecting one or more values (e.g., pitch values) from the pitch vocabulary based on the input data, for example, using techniques described herein (e.g., process 1100 shown in FIG. 11). The process 420 may also include, at step 428, selecting one or more values (e.g., melody values) from the melody vocabulary based on the input data. As will be appreciated, pitch refers to a single note, while a melody is composed of multiple notes played sequentially and thus, denotes at least 2 notes. In some embodiments, the melody value selected from the melody vocabulary may depend on the pitch value selected from the pitch vocabulary. For example, the melody value may include the pitch selected at step 426 plus at least one of a first pitch that is sequentially before the selected pitch and a second pitch that is sequentially after the selected pitch, or other combination of multiple pitches that forms a musical phrase (e.g., a melodic fragment) comprising the pitch selected at step 426. Other algorithms or techniques for selecting melody values are also contemplated, such as, for example, playing the note that is a half-step above or below the pitch selected at step 426, along with the selected pitch.

The process 420 may further include, at step 430, selecting one or more values from the harmony vocabulary based on the input data. In some embodiments, the harmonic values may be selected based on the pitch value(s). For example, based on a collection of pitches, a set of chords can be determined which contain those pitches and thereby, form the harmonic vocabulary. The harmonic vocabulary can be derived either from the result of spectral analysis (e.g., as shown in FIG. 10) or defined statically (e.g., as in FIG. 4A), indicating the chords corresponding to each time segment that are musically coherent with the pitch set for that segment. For example, spectral analysis may be used to produce the following JSON array with pitches in order of amplitude or volume {“F”, “A”, “D”, “B”, “A”, “C♯”}, which may be stored as the pitch vocabulary in the parameter file 410, and based thereon, the processing plug-in may analyze the data in pairs and produce chord candidates (e.g., by matching pitches F and A to chord F Major, matching pitches D and B to chord B minor, and matching pitches A and C♯ to chord A Major).

At step 432, the process 420 includes selecting one or more values from the image vocabulary based on the input data, for example, using techniques described herein (e.g., process 1200 shown in FIG. 12). It should be appreciated that in some embodiments, the process 420 may not include one or more of the steps 424 through 432 if the corresponding vocabulary is not included in the vocabulary set at step 422 after analyzing the parameter file, for example.

At step 434, the process 420 includes outputting the selected audio and visual representations, or the values selected in steps 424 through 432, to audio and/or visual engines, as appropriate. This may be shown in, for example, FIG. 2, by the audio engine 208 receiving an audio output array from the processing plug-in 206 via the TCCS harness 202, and the visual engine 210 receiving a visual output array from the same.

To avoid hard-wiring of methods and algorithms and allow maximum flexibility, the system supports a plug-in architecture (e.g., processing plug-ins 406 and 408), where new code can be easily inserted to process new data streams or accommodate new purposes (for example, as shown in FIG. 10). The configurable nature of the plug-in architecture is illustrated in FIG. 15, for example, which provides examples to show how values in the TCCS parameter file can determine which targeting plug-in, processing plug-in, audio engine, and video engine to use. As will be appreciated, other architectures may be used to implement the techniques described herein.

To illustrate what an exemplary plug-in might look like, FIGS. 16A-16C depict a table 1600 describing an exemplary set of parameters, and showing how these parameters could be used within the exemplary processing plug-in. This example illustrates how multiple threads of execution executing the provided code with a common parameter file can result in a coherent audio/visual result. In table 1600, the parameters may be used in the audio output to influences data values passed to the sound generation system, for instance, using MIDI, OSC, or other audio streaming protocols. Likewise, the parameters may be used in the video output to influence data values passed to the visual generation system, for instance, using OSC or other streaming data protocols. The usage examples provided in the last column of table 1600 use variable names defined in other parameter examples within the same column, showing possible ways parameters can be used in formulae with one another (i.e. not hard-wired). It should be assumed that each function is called in a loop (e.g., called at least once for each sample. For purposes of simplicity, it should also be assumed that all variables are Global in Scope. The “defined parameters” mentioned in table 1500 may refer to the parameters listed in table 1600, according to embodiments.

Below is an exemplary pseudo-code implementation of processing plug-in logic flow to show that the process (e.g., process 400 and/or process 420) can accommodate real-time stream of EEG and other bio/neurometric data, in accordance with embodiments. The below-mentioned custom parameters “C1-C10” are present to accommodate any arbitrary purpose including neurometric/biometric data values that may be produced by B/N data collection devices other than an EEG headset, such as, for example, a respiration measurement device (e.g., as provided by Spire Health) or other wearable breath tracker, or a blood pressure monitor. In some embodiments, the “PluginChoice” value may be obtained as specified in table 1500 of FIG. 15, and the “TCCS Parameters” may be obtained as specified in table 1600 of FIG. 16. The exemplary pseudo-code may include the following operations:

With (real-time biometric data stream)  For each record x in data stream)   A = alphaEEGpower   B = betaEEGpower   G = gammaEEGpower   T = thetaEEGpower   D = deltaEEGpower   H = heartRate   C1-C10 = CustomBioMetric1-CustomBioMetric10   rawEEG = RawEEGpower  outputArray = ApplyPlugIn (PluginChoice, TCCSParameters, A, B, G, T,  D, H, C1-C10, RawEEG)  SendData (audio engine, video engine, outputArray) Loop until data stream closed or end command received.

In the above, it should be understood that “Alpha” refers to brainwaves (or EEG power) with a frequency band or range of 8-12 hertz (Hz), “Beta” refers to brainwaves in a frequency range of 12.5-30 Hz, “Gamma” refers to brainwaves in a frequency range of 25-140 Hz, “Theta” refers to brainwaves in a frequency range of 4-7 Hz, and “Delta” refers to brainwaves in a frequency range of 0.5 to 4 Hz. In embodiments, the creative circuit module may be configured to analyze the incoming signal to determine which of these frequency bands are included in signal. The identified frequency bands are then used to determine which pitch values and other output values are included in the output array for rendering a coherent output. For example, in some embodiments, an output array may be generated in which each EEG band is associated with, or assigned to, a different MIDI channel or instrument (e.g., Alpha=flute, Beta=violin, etc.), and the MIDI pitch number for each channel may be derived based on the frequency of each EEG band and the overtones in the user-provided content (or the vocabulary developed based thereon).

In some embodiments, the processing plug-in may use different pitch selectors for different EEG bands. For example, the pitch selector method for the Muse 2 EEG headset may call methods that calculate what pitch to produce for Alpha EEG bands differently than for Beta EEG bands. In the below example, the custom parameter C1 contains an array of 127 elements representing all possible MIDI pitch levels, with each array entry indicating the volume detected of a frequency matching that pitch (i.e. the real-time pitch vocabulary). The following pseudo code shows a possible flow of such processing plug-in logic:

  def processingplugin(bioData)   processDivisions( )   processNoteLength( )   setPitchForAlpha(bioData[alpha], biodata[C1])   setPitchForBeta(bioData[beta], biodata[C1])

As an example, the algorithm for the above setPitchForAlpha method may include (1) create a list of all pitches in the live audio input that have volumes above a certain threshold or level, rank ordered by volume (e.g., an array in JSON file format), said pitches being identified using, for example, spectral analysis as described in FIG. 10, (2) add said list to the current list represented in the “TonalCenter1” variable in the TCCS parameter file (or as a key variable of that file) and remove any repeats in pitch values to create a merged list, and (3) derive a MIDI pitch value for biodata[alpha] (or the given band of the EEG signal) using the newly populated TonalCenter1 as the key variable and by a mathematical transformation that is similar to that described above. This algorithm may be repeated for each band of the EEG signal (e.g., Alpha, Beta, Theta, etc.). It should be appreciated that in other embodiments, the setPitchforAlpha algorithm may be written to append to a different variable, such as, e.g., “TonalCenter2”. In some embodiments, each EEG band may be appended or added to a different variable (e.g., Alpha to TonalCenter1 and Beta to TonalCenter2), such that the MIDI pitch values for each EEG band are derived based on different lists. Also, while the above example describes creating a list, in other embodiments, the method may populate the pitch vocabulary with the new data by creating an array of pitch values (represented as MIDI note numbers) and corresponding volume levels at step 1 and appending said array to the current array at step 2, or otherwise merging the two arrays.

In embodiments, standard audio signal processing techniques may be used to extract any desired characteristic of an audio stream representing user-provided content, and then provide the extracted data to the processing plug-in, as real-time vocabulary. In this manner, the user-provided content can influence the output of the algorithm for converting the brain waves to audible sound, thus creating a creative circuit where the user is influenced by the coherent output generated based on their brain waves.

FIG. 5 illustrates an exemplary creative circuit system 500 configured for creating a feedback loop while being used by a human subject (or user) 501, in accordance with embodiments. As shown, the system 500 comprises a bio/neurometric (B/N) data collecting headset 502 worn by the user 501 and output devices for presenting a coherent, visual and audible output to the user based on the data collected by the headset 502. As also shown, the output devices include an audio output device 514 for delivering an audible or audio output to the user 501 and a visual output device 516 for delivering a visual or video output to the user 501. In embodiments, a feedback loop may be created by continuously updating the visual and/or audio outputs based on the real-time bio/neurometric data feed received via the B/N data collection headset, the real-time data feed including one or more “feedback signals,” or B/N data representing a response of the user upon experiencing each audio and/or visual output.

The components of the system 500 may be substantially similar to corresponding components of the creative circuit system 100 shown in FIG. 1 and therefore, will not be described in detail here for the sake of brevity. For example, the B/N data collection headset 502 may be substantially similar to the B/N data collector 102, the B/N data receiver 504 may be substantially similar to the B/N data receiver 104, the computing device 506 may be substantially similar to the computing device 106, and the creative circuit module 508 may be substantially similar to the creative circuit module 108. Also, the audio production module 518 and the graphics/animation engine 520 may be substantially similar to the audio production module 118 and graphics/animation engine 120, respectively. In one embodiment, the B/N data collection headset 502 may an EEG headset manufactured by Interaxon corporation (such as, e.g., the Muse 2 headset).

Moreover, like the audio output device 114, the audio output device 514 may be external to the computing device 506 (e.g., external speakers, personal listening device, etc.), as shown in FIG. 5, or may be integrated into the computing device 506 (e.g., as native/internal speakers). And like the visual output device 116, the visual output device 516 may be an external display screen coupled to the computing device 506 (e.g., computer monitor), as shown in FIG. 5, or may be integral to the computing device 506 (e.g., a laptop or desktop computer). In one embodiment, the visual output device 516 and audio output device 514 may be integrated into one unit, such as, e.g., a television or the like. In some embodiments, the system 500 may be implemented using the system 100, for example, by forgoing the audio and visual input devices 110, 112.

During operation, the user 501 may experience an output generated by the computing device 506 by viewing the visual portion of the output using the visual output device 516 and/or listening to the audio portion of the output using the audio output device 514. This experience may influence a thought process of the user 501, which can be registered or captured by the B/N headset 502 as EEG data or other bio/neurometric data (also referred to herein as a “feedback signal”). The headset 502 can be configured to collect the feedback and other electrical signals from the user 501 wearing the device and send the captured human activity to the B/N data receiver 504 (e.g., over a Bluetooth network connection). The data receiver 504 can be configured to transmit the received data feed to the computing device 506, for example, over a WiFi connection using the Open Sound Control (OSC) communication protocol (OSC). The creative circuit module 508 can be configured to process the incoming data and produce a new output array (also referred to herein as a “feedback output array”) using algorithms specified in a processing plug-in and in conjunction with a parameter file and vocabulary datastore, for example, as shown in FIG. 4A and described herein. The output array may be provided to the audio production module 518 (or “audio engine”) and the graphics/animation engine 520 (or “visual engine”) in order to generate a new audible output for delivery to the user via the audio output device 514 and a new visual output for delivery to the user via the visual output device 516, respectively. This creates a feedback loop, as the user's mind, and therefore the EEG data feed, is again influenced by the new audio and/or visual content.

FIG. 6 illustrates another exemplary creative circuit system 600 configured to create a feedback loop for a person or user 601 wearing a B/N data collection headset 602 while experiencing an audio/visual output presented by the system 600. In embodiments, the feedback loop may be created by continuously updating the visual and/or audio outputs based on the real-time bio/neurometric data feed received via the B/N data collection headset 602. The system 600 may be substantially similar to the system 500 of FIG. 5, except that the computing device 606 includes a single audio/visual engine 619 for generating the audio and/or visual outputs, rather than the dedicated audio engine and visual engine shown in FIG. 5. Accordingly the common components of the system 600 will not be described in detail here for the sake of brevity.

In embodiments, the audio/visual engine 619 may be configured to receive an output array from the creative circuit module 608 comprising audio and visual output information selected based on the incoming B/N data, as described herein. In some embodiments, the audio/visual engine 619 may be implemented using existing visual programming software for creating real-time audiovisual works, such as, for example, Max/MPS/Jitter provided by Cycling '74, or other interactive media software capable of working with the creative circuit module 608 to present a coherent, visual and audible output to the user 601 based on the data collected by the headset 602.

FIG. 7 illustrates an exemplary creative circuit system 700 configured to create a feedback loop while being used by two people: a first user 701 wearing a first B/N data collection headset 702 communicatively coupled to a first B/N data receiver 704, and a second user 703 wearing a second B/N data collection headset 705 communicatively coupled to a second B/N data receiver 707, in accordance with embodiments. The feedback loop may be created by collecting bio/neurometric data while the two users are experiencing an audio/visual output presented by the system 700, and continuously updating that output based on the data collected from both users.

The system 700 may be substantially similar to the system 500 of FIG. 5, except for the addition of a second user and the additional devices associated therewith. Accordingly, the common components of the system 700 will not be described in detail here for the sake of brevity. The B/N data collection headset 705 may be substantially similar to the B/N data collection headset 702 worn by the first user 701, such as, e.g., a Muse 2 headset. The B/N data receiver 707 may also be substantially similar to the B/N data receiver 704 of the first user 701. For example, both data receivers 704 and 707 may be Android smartphones. In other embodiments, the data receiver 707 may be another type of smartphone (e.g., an Apple iPhone) or a different type of electronic device (e.g., a gaming device, etc.). In either case, the data receiver 707 may be communicatively coupled to both the B/N data collection headset 705 (e.g., via a Bluetooth connection) and to a computing device 706 (e.g., via a WiFi connection) in order to convey the captured B/N data to a creative circuit module 708 included in the computing device 706.

Using techniques described herein, the creative circuit module 708 may be configured to generate an output based on the B/N data received from both users, and provide an output array to an audio production module 718 and/or a graphics/animation engine 720 for delivering updated audio and/or visual outputs to both users via one or more of audio output device 714 and visual output device 716. For example, the creative circuit module 708 may use a common vocabulary and parameter file to analyze the individual data streams obtained from each of the users 701 and 703, and may combine the results of that analysis to obtain a common output for delivery to both users.

FIG. 8 illustrates an exemplary creative circuit system 800 configured to create a feedback loop a first user 801 is listening to, or otherwise experiencing, a live performance produced by a second user 803, in accordance with embodiments. The feedback loop may be created by collecting bio/neurometric data from the two users during the live performance, generating an output (audio and/or visual) based on the B/N data of both users, as well as live input data representing the live performance, then presenting the output to the users, and continuously updating that output as new B/N data and/or live input data is received. In some cases, the second user 803 may only receive an audio output representing feedback from the first user 801, or the listener of the second user's performance. In such cases, the visual output may only be provided to the first user 801 in order to enhance the first user's sensory experience.

Other than the addition of a musical instrument 811 and an audio input device 810, the system 800 may be substantially similar to the system 700 of FIG. 7 and may use similar techniques to create the feedback loop. Accordingly, the common components of the system 800 will not be described in detail here for the sake of brevity.

As shown in FIG. 8, the creative circuit system 800 comprises a computing device 806 configured to receive, via a first B/N data receiver 804, live bio/neurometric data collected by a first B/N data collection headset 802 from the first user 801, and live bio/neurometric data, via a second B/N data receiver 807, collected by a second B/N data collection headset 805 from the second user 803. The system 800 also comprises audio input device 810 (e.g., a microphone, similar to the audio input device 110 shown in FIG. 1) for capturing audio associated with the live performance and providing the captured audio signals as the live audio input. In the illustrated embodiment, the live performance is provided by the second user 803 playing musical instrument 811, such as, e.g., a guitar, piano, cello, violin, drums, etc. In other embodiments, the live performance may be spoken word or other vocal performance provided by any one of the users and captured by the audio input device 810.

The computing device 806 comprises a creative circuit module 808 configured to process the live audio input received via the audio input device 810 and the two live B/N data streams received via the data receivers 804 and 807, and based thereon, generate an output for simultaneous delivery back to one or more of the users 801 and 803. The output may be an audio output for delivery via an audio output device 814, similar to the audio output device 714. In some cases, the output may also include a visual output for delivery via a visual output device 816, similar to the visual output device 716.

In embodiments, the creative circuit module 808 may be configured to analyze the live audio input data using spectral analysis and create a vocabulary of pitches and/or rhythms based thereon, which then becomes the common vocabulary used by the algorithm that processes the biometric/neurometric data from both subjects (e.g., process 400 shown in FIG. 4A and/or process 420 shown in FIG. 4B). In some embodiments, the creative circuit module 808 uses an audio processing software tool for performing audio and/or music analysis in order to create the pitch vocabulary, for example, as an array representing the set of overtones in an incoming audio stream, binned into MIDI pitch buckets (e.g., written in JSON file format). The overtones may be derived from, or obtained based on, a frequency component extracted from the incoming audio stream by a spectral analyzer (e.g., spectral analyzer 1012 shown in FIG. 10), and the overtones may be converted to MIDI pitches using a known mathematical algorithm. In one embodiment, the audio processing tool utilizes the LibROSA library and Python programming language to perform music information retrieval on the incoming audio data, for example, as shown and described at the website “musicinformationretrieval.com/chroma.html”, the contents of which are incorporated by reference herein. For example, the LibROSA library may be used to identify pitch values and/or other aspects of the user-provided content (e.g., as shown in FIG. 13). In some cases, the LibROSA beat module may be used to extract rhythm information from the user-provided content. Through such techniques, a “Vocabulary” datastore can be created in real time that defines the pitch and/or rhythm vocabulary to be used in the algorithm, which is configured to convert the incoming B/N data to sound, thereby allowing the audio output that is created based on both users' B/N data to be musically coherent and in harmony with the output produced by the musical instrument 811.

Another example of usage involving live audio input relates to the practice of “humanization.” This is an active topic in the field of electronic music, for example, as shown and described at the web site “makingmusic.ableton.com/humanizing-with-automation-envelopes”, the contents of which are incorporated by reference herein. Synthesizers can be programmed with preset loops that allow a user to have, for instance, a drum track running and play along with the track. The problem with these loops, however, is the robotic sound, which misses the little variations that human drummers naturally introduce. Some modern music work stations offer “humanization” functions, which essentially involve adding random variations to the preset loop.

In embodiments, the creative circuit module 808 can be configured to take humanization to a new level, where the variations are controlled by brain waves rather than being random. In such cases, the computer-generated preset loops can be modified to conform to the same common vocabulary and can be “humanized” through brain-wave controlled variations. As an example, these techniques can be implemented in a group setting with two users or human subjects playing musical instruments, or for a single user setting where the person is playing solo but now has a lively backing track varied by his brain, instead of a drum machine playing behind him, as is conventional. As another example, the humanized music may be played on its own as a new musical piece.

In some embodiments, the user may load preset MIDI tracks into a digital audio workstation (or audio engine), such as, e.g., Logic, and may configure the workstation to play the MIDI tracks in a loop using a selected instrument, such as, e.g., a piano, so as to serve as a backing track that is continuously on repeat during the user's performance (e.g., second user 803). Such preset loop may be received as an audio input at the audio input device 810 and may be spectrally analyzed to create the common vocabulary in real-time. In such cases, the system 800 may be configured to produce a humanized version of the preset loop by generating an output based in the common vocabulary derived from the preset loop, the brain waves collected from the user while the preset loop was playing, and the parameter file, using the techniques described herein. In other cases, the system 800 may be configured to generate an output based on the second user's live performance as shown in FIG. 8, and said output may be added to, or played along with, the backing track for humanization purposes. For example, a flute may be used to play the brain wave-embellished MIDI track, while the original MIDI track may be played on the piano. In other embodiments, the system 800 may be configured to humanize the backing track based on a static vocabulary and the detected brain waves of one or more users. In each of above-described examples, the humanized backing track may be generated based further on the parameter file. For example, the parameter file may be configured to match the length of a quarter note with the corresponding setting for the preset loop. Further, in some cases, one or more settings of the system 800 may be adjusted so that the pitches produced by the brain waves embellish the backing track in a satisfying manner.

FIG. 9 illustrates using an exemplary creative circuit system 900 configured to simultaneously gathering various types of bio/neurometric data from a given user and produce a combined, coherent output based on all incoming data streams, in accordance with embodiments. As shown, the system 900 includes a plurality of bio/neurometric (B/N) data collection devices 902 a, 902 b, and 902 c and a plurality of bio/neurometric (B/N) data receivers 904 a, 904 b, and 904 c, each data receiver 904 communicatively coupled to a respective data collection device 902 (e.g., via a wired or wireless connection) for receiving a separate data feed therefrom. Each of the data receivers 904 a, 904 b, and 904 c may also be communicatively coupled (e.g., via a wired or wireless connection) to a computing device 906 in order to transmit the received data thereto for processing. The computing device 906 includes a creative circuit module 908 configured to individually process the multiple data streams and generate a coherent output based on all received data. In embodiments, the system 900 may be substantially similar to the system 100 shown in FIG. 1 and described herein, aside from the addition of multiple B/N data collectors and data receivers. Accordingly, the common components of the system 900 will not be described in detail here for the sake of brevity.

In embodiments, each of the B/N data collection devices 902 a, 902 b, and 902 c may be configured to collect a different type of bio/neurometric data from the user. For example, a first data collection device 902 a may be configured to collect EEG data or other data representing brainwave activity, such as, e.g., a Muse 2 headset. A second data collection device 902 b may be configured to collect breathing rate and/or heart rate data, such as, e.g., a Spire respiration monitoring device. A third data collection device 902 c may be configured to collect cerebral oxygenation data or otherwise monitor tissue oxygenation, for example, using near-infrared spectroscopy (“NIRS”). Other types of bio/neurometric data collection devices may also be used, in addition to or instead of the above, in order to collect other types, such as, for example, respiration measurement devices, blood pressure monitor, pulse monitor, near-infrared EEG device, conventional EEG device, heart rate variability (“HRV”) monitor, and the like. In some embodiments, one or more types of data collection devices may be combined into a single unit for ease of use and user comfort, for instance. In some embodiments, the system 900 may include more, or fewer, than the three data collection devices 902 shown in FIG. 9.

The B/N data receivers 904 a, 904 b, and 904 c may be any type of electronic device capable of receiving and processing the respective incoming data feed, such as, e.g., a smartphone, tablet, or other computing device, similar to the B/N data receiver 104 shown in FIG. 1. In some embodiments, each data receiver 904 a, 904 b, 904 c may be configured to handle the particular type of B/N data being collected by the corresponding data collection device 902 a, 902 b, 902 c. For example, the first data receiver 904 a may include a software application configured to receive and process EEG data, like the software application 122 shown in FIG. 1. In one embodiment, the software application may be the Mind Monitor application designed to work with Muse 2 headsets.

The B/N data receivers 904 may use the OSC protocol, or other appropriate communication protocol, to transmit the received data feeds to the computing device 906. If the native data collection component(s) for a given data receiver 904 do not support OSC, a translation layer may be added to the component(s) to convert the protocol supported by said receiver 904 to OSC.

Once the computing device 906 receives the B/N data from the data receivers 904 a, 904 b, and 904 c, e.g., at a communications module of the computing device 906, similar to the computing device 106 of FIG. 1, the data may be provided to the creative circuit module 908. The creative circuit module 908 may be configured to route each incoming data stream to the processing plug-in (“PPI”) that has appropriate capabilities to support the respective data collection device 902 and/or type of data. In some embodiments, the creative circuit module 908 may use the following code to select or identify an appropriate PPI: <DeviceType/DeviceModel><OutputType>Selector. For example, if the B/N data collection device 902 a is the Muse 2 EEG headset, the code to support this device would be named “EEGMuse2PitchSelector,” “EEGMuse2RhythmSelector,” “EEGMuse2MelodySelector,” “EEGMuse2HarrmonySelector,” “EEGMuse2ImageSelector,” and so forth. Likewise, the code to support the Spire respiration monitor device would be “RespSpirePitchSelector,” “RespSpireRhythmSelector,” and so forth.

Through these codes, algorithms can be implemented which use the incoming data, the parameter files, and the vocabulary datastore to determine what audio and visual output to render. The output data is sent to an audio engine) 918 (similar to the audio production module 118) and/or a visual engine 920 (similar to the graphics/animation engine 120), depending on whether the output data is visual and/or audio. The visual engine 920 may be, for example, Unity or other graphics/animation production software, and the audio engine 918 may be, for example, Logic Pro or other digital audio workstation. The visual engine 920 can also contain custom code for image generation, for example, through the capability to add modules in the C# language to Unity. The visual engine 920 can also have access to the parameter files and vocabulary datastore and can also contain logic for image selection and geometric figure rendering. The audio engine 918 can be configured so that the input is rendered for different instruments on different MIDI channels, and these software instruments (such as synthesizers) can also be configured to produce different varieties of audio output.

FIG. 10 illustrates a process 1000 for concurrently processing multiple threads of bio/neurometric data using a common vocabulary derived from spectral analysis of a live audio input, in accordance with embodiments. As an example, the process 1000 may be used by the creative circuit system 800 shown in FIG. 8 and described herein, where the live audio input is a live performance by the second user 803. The process 1000 may be carried out using one or more components of a creative circuit module, such as, e.g., the module 200 shown in FIG. 2, and/or the module 808 of FIG. 8, or using any computing device having corresponding software stored on a computer readable medium and executable by one or more computer processors. While FIG. 10 specifically shows concurrent processing of data streams obtained from two separate human subjects, it should be appreciated that the incoming data of three or more human subjects may be concurrently processed using similar techniques. In other embodiments, the process 1000 may be used to processing a single thread of B/N data using common vocabulary derived from spectral analysis of live audio input.

Generally, the process 1000 provides an exemplary algorithm for determining audio and video output based on input bio/neurometric data received from separate users, with commonality gained by use of a shared parameter file 1010 and vocabulary datastore 1011. As shown, the process 1000 utilizes spectral analysis, and a resulting common datastore 1011, to determine a musical output based on incoming EEG data from both human subjects, each in a separate processing thread, thus allowing concurrent thread execution and hence, merged concurrent audio and video output. In one embodiment, the multi-threading can be handled using the multi-threading capabilities built into the Python programming environment. As shown, although the threads run concurrently in FIG. 10, they can share data, in this case the global parameter file 1010 and the common vocabulary datastore 1011.

Portions of the process 1000 may be similar to the process 400 shown in FIG. 4A. For example, the process 1000 may begin with a bio/neurometric data listener 1002, similar to the B/N data listener 402, providing the incoming data streams or threads from individual human subjects to a TCCS dispatcher 1004, similar to the TCCS dispatcher 404. The data listener 1002 may be configured to make multiple connections to different data collection devices (such as, e.g., the B/N data collection headsets 802 and 805 shown in FIG. 8), and hence multiple human subjects (e.g., users 801 and 803 in FIG. 8). The TCCS dispatcher 1004 may assign a respective one of a plurality of processing plug-ins (“PPI”) 1006 and 1008 (similar to PPIs 406 and 408) to each human subject, or otherwise provide each thread to the respective processing plug-in. In embodiments, each processing plug-in 1006, 1008 may concurrently operate according to the process 420 shown in FIG. 4B, thus enabling the process 1000 to concurrently process both data threads and produce separate outputs based thereon that are musically coherent.

In FIG. 10, each plug-in 1006, 1008 also receives parameters from the shared TCCS parameter file 1010, which provides, for example, common pitch and/or rhythm data (or vocabulary) to be used for both threads. The TCCS parameter file 1010 may be substantially similar to the shared TCCS parameter file 410 shown in FIG. 4A and described herein, except that the common vocabulary is determined based on data received from a TCCS spectral analyzer 1012. Also, unlike the parameter file 410, the parameter file 1010 does not include a vocabulary datastore. Instead, the vocabulary datastore 1011 is stored separately from the parameter file 1010, as shown in FIG. 10.

According to embodiments, the spectral analyzer 1012 can be configured to measure the amplitude or power of each frequency of an input signal and based thereon, determine various other spectral aspects of the signal, such as, e.g., power, harmonics, bandwidth, etc. In some embodiments, the output of the spectral analyzer 1012 may include a frequency component and a corresponding power component identified from the input signal. The spectral analyzer 1012 may be implemented in hardware, software, or any combination thereof.

In embodiments, the vocabulary datastore 1011 may contain a “real-time” vocabulary that is dynamically populated based on the results of the spectral analysis performed by the spectral analyzer 1012 on the user-provided content. In some embodiments, the vocabulary datastore 1011 may include a JSON file comprising JSON arrays, with each JSON object representing a note. For example, one JSON array for representing the pitch vocabulary may be: [“C♯5”, “F♯4”, “C♯6”, “B5”, “E4”, “G6”, “A♯5”, “C6”, “D6”, “G4”, “A2”, “A4”, “G♯5”], which includes pitch values corresponding to the frequencies extracted from the user-provided content by the spectral analyzer 1012, ordered by the intensity of volume level, or power, also extracted by the spectral analyzer 1012 for each frequency. In other embodiments, the real-time vocabulary may be provided as an array comprising pairs of pitch values (or the corresponding MIDI note numbers) and volume levels corresponding to the frequency and power components identified by the spectral analyzer 1012. For example, the array may include 127 elements representing all possible MIDI pitch numbers, with each element containing a volume level in decibels.

As shown in FIG. 10, the process 1000 further includes receiving a live audio input at an audio interface 1014. As an example, the audio interface 1014 may be a software component residing in the creative circuit module 808 and configured to interface with, or receive live input data from, the audio input device 810 for capturing the live performance shown in FIG. 8. The audio interface 1014 sends the received data to the TCCS spectral analyzer 1012, which populates the vocabulary datastore 1011 with preferred pitches based on spectral information (or frequency components) extracted from the live audio input, thus creating a real-time common vocabulary for pitches. The spectral information may include, for example, frequencies and overtones detected or identified in the user-provided content. In some cases, the extracted information may also be analyzed for rhythm data and used to populate the rhythm vocabulary, for example, using the LibROSA beat module. In some embodiments, the parameter file 1010 may include a variable “recordEnable=True” that causes the creative circuit module to start recording the live audio input, the recorded files then being provided to the spectral analyzer 1012 for analysis.

In embodiments, based on its analysis of the incoming audio, the spectral analyzer 1012 may create an array representing overtones in the incoming audio stream, binned into MIDI pitch buckets. This array may be saved in the vocabulary datastore 1011 as the pitch vocabulary in a JSON file, for example, and may be dynamically populated or updated as the spectral analyzer 1012 continues to process the incoming audio. When the processing plug-ins 1006, 1008 request pitch vocabulary from the parameter file 1010, the array may be retrieved from the vocabulary datastore 1011 and provided to the processing plug-ins as the “preferredNotesArray” for deriving a musically coherent output from the incoming B/N data. In this manner, the frequencies and overtones detected in the user-provided content may be used as the preferred notes for translating the B/N data into musical tones.

In some embodiments, the pitch vocabulary array includes 127 elements representing all possible MIDI pitch levels or numbers, and each array entry may include the volume level detected in the incoming audio content for the frequency that matches, or most closely matches, the frequency of the corresponding pitch level. In other embodiments, the array may only include entries for preferred pitches. For example, an array created upon spectral analysis of input audio detected during the live performance shown in FIG. 8 may include a volume or power level of 93 for MIDI pitch number 24, a power level of 72 for MIDI pitch number 59, a power level of 12 for MIDI pitch number 79, and a power level of 6 for MIDI pitch number 127. In still other embodiments, the array may be a list of pitch values ranked by volume level, rather than explicitly including the power values. In such cases, the volume level for each pitch value may be implicitly represented in the ordering of the pitch values. The exact form used for the pitch vocabulary may be set using variables in the parameter file, for example, by setting the variable “volumeRepresentation” equal to “Summary” for the ordered pitch value representation, or “Detailed” for the array of volume levels representation.

Regardless of the exact form, such “pitch sets” or pitch vocabulary may be stored in the vocabulary datastore 1011 as the real-time pitch vocabulary, and may be used by appropriate plug-in selector functions of processing plug-ins 1006 and 1008 to choose pitch representation for incoming bio/neurometric data, for example, in accordance with the process 420 shown in FIG. 4B. Thus, the vocabulary datastore 1011 can define the pitch vocabulary to be used in the algorithm that converts the EEG data to sound, thereby allowing the audio output created based on both subjects together to be musically coherent.

In embodiments, the calculation of which pitch and volume (or velocity) to render in the output may be done by the creative circuit module 808 (or TCCS Server Application) and may be transmitted to the audio engine 818 (e.g., Logic Pro or other DAW) using the MIDI protocol. The MIDI protocol also specifies a channel, allowing mapping to a specific instrument. For instance, channel 5 may be assigned to a cello. The choice of how to render video may be determined by the visual engine 820, for example, using custom code in the Unity system. The data may be transmitted to the visual engine 820 via the OSC protocol, and a section of C# code may determine what video to render based on the shared parameter file 1010 and vocabulary datastore 1011.

One example of a live performance that may be processed using the process 1000 is user spoken input (or a vocal performance), in which a single subject uses spoken word as the content to merge with the EEG data received via the data listener 1002, to produce a hypnotically powerful artifact (or output) that can be used by the user to reinforce the media content of choice, or otherwise enhance a hypnotic suggestion.

For instance, the user may wear the EEG headset 802, and read out loud, repeatedly, a phrase representing a target psychological state the person aspires to such as: “Every day I remember to be thankful for all I have been given.” The process 1000 may be used to reinforce this hypnotic suggestion through the interplay of audio signals representing the user-provided content and biometric signals obtained from the EEG headset 802 while the user is reading this phrase. For example, the spectral analyzer 1012 may be used to extract phonetic content, as well as the primary pitch and overtones present in the audio stream representing the user's voice. This information may be converted into MIDI data representing overtones each with a corresponding volume (or velocity) level, or the real-time pitch vocabulary. The MIDI data may then be used by an appropriate processing plug-in to derive pitch values for the incoming EEG data and produce an output array of volume levels at different frequencies. The resulting audio output may be a “soundscape,” which may be more like a texture than a song, or a harmonic progression with multiple tones rendered as chords, or as an individual melody, with these options depending on the processing plug-in algorithm and additional characteristics, such as timbre and instrumentation settings, being controlled by the settings of the audio engine. A feedback loop is created when this output is heard by the user and influences the way they read the words in the next iteration, which in turn changes the next output, and so on. It has been shown that the mind can adjust itself to produce EEG patterns that the subject wants to reinforce. Thus, the feedback process described herein, where the user is aware of the inclusion of their content in the creative process, may create a powerful reinforcing mechanism capable of increasing the hypnotic suggestive effect.

In another example, one or more subjects could play musical instruments and repeat a song or improvise over a chord progression, using the feedback loop to enhance their interpretation of the music they are playing, or inspire creative ideas.

In another example, one or more subjects could use the techniques described herein to perform free-form improvisation of music or spoken word, continually evolving their own content in response to the system feedback, in what might be termed an improvisational call and response with their own merged content. In these examples, bio/neurometric data from the one person, or multiple persons, involved could be taken into account by the appropriate processing plug-in.

Another possibility for user-provided input could be in the form of user movement, picked up by a camera and sent to the system in a custom parameter, or the user could draw on a digital tablet, providing coordinate data or pressure or color choice data in real-time that can be taken in as a custom parameter and used in an appropriate processing plug-in.

In another configuration, the system(s) described herein could be used with pre-existing EEG files that are played back through the system in a loop (such as, e.g., the playback mode shown in FIG. 3 and described herein). With files of different lengths looping and going to different MIDI channels, the effect is a continuously varying audio and/or video stream, providing a musical and/or visual texture to be used for relaxation, entertainment, creative stimulation, guided meditation, or other beneficial purposes.

The system(s) described herein can be configured so that different EEG bands can be associated with different MIDI channels, and different users can be associated with different channel ranges. So, for instance, a subject could have their brain wave power in the Alpha range to be associated with a flute, while all other bands are used to determine output from a violin. Each subject can have their own customized choices of what brain wave is associated with what instrument or form of output.

The system(s) described herein can also be configured so that user-provided content is recorded in multiple segments, each generating its own output of audio characteristics, which the algorithm for pitch/rhythm/harmony selection cycles through iteratively, allowing for variety such as sections with different keys, chords, styles etc.

The system(s) described herein can be configured to support multiple individuals wearing headsets, each individually identifiable on separate ports in the system. In the event latency and performance becomes an issue, because the input data supports receiving EEG through Wide Area Network (WAN) transfer protocols such as UDP, the system can support daisy chaining of computer systems and aggregation of EEG data before transmission across a network. So, far-instance, to support 100 users one might use 10 computers, each computer handling 10 users, aggregating the EEG data, and sending only average and/or peak values to a central node. These techniques, plus other, known networking techniques, may be used to support the group examples described here.

FIG. 11 illustrates an exemplary process 1100 for selecting appropriate audio representations (such as, e.g., pitch and velocity, or volume, parameters) for received bio/neurometric data, using a parameter file and vocabulary datastore, in order to convert EEG data to sound, in accordance with embodiments. As an example, the process 1100 may be used by any of the creative circuit systems 100, 500, 600, 700, 800, and/or 900, or the creative circuit module included therein, to map received B/N data to appropriate pitch and velocity values. In particular, the process 1100 may be carried out using one or more components of the creative circuit module (e.g., the module 200 shown in FIG. 2 and/or the module 300 shown in FIG. 3), such as, for example, a processing plug-in included therein, or using any computing device having corresponding software stored on a computer readable medium and executable by one or more computer processors. In the case of multiple input B/N streams from multiple users, the process 1100 may be concurrently carried out for each stream of B/N data (or each user) by the appropriate processing plug-in (e.g., as shown in FIG. 10). The parameter file and/or vocabulary datastore may be substantially similar to at least one of the TCCS parameter file 410 shown in FIG. 4B and the TCCS parameter file 1010 and vocabulary datastore 1011 shown in FIG. 10, or otherwise use the techniques described herein with respect to vocabulary usage and parameter selection.

As described herein, the vocabulary may be either pre-populated (i.e. static) or dynamically populated based on analysis of input audio and/or visual data (e.g., from a live performance). In the case of static vocabulary, the vocabulary datastore information may be stored or held in the parameter file and represented by arrays of notes, for example. In the case of real-time vocabulary, the vocabulary datastore information may be stored or held in a separate file capable of being dynamically populated, such as, for example, a JSON file containing JSON arrays, with each JSON object representing a note. Which vocabulary datastore implementation is chosen can be based on system requirements, such as, e.g., performance and ease of access. In some embodiments, the vocabulary datastore may be implemented as a database, such as, e.g., relational, document-oriented, or other suitable database types.

The illustrated process 1100 provides one method for determining pitch and volume, or velocity, of a given note based on incoming EEG data. This logic might be included in the “EEGMuse2PitchSelector” algorithm described above with respect to FIG. 9, for example. In one example, the power of a given brain wave frequency, provided in microvolts, may be detected in the Alpha range (e.g., 8-12 hertz (Hz)) and used as the basis for calculation. At step 1102, the brain wave frequency value (or EEG power) may be scaled up to above a predetermined frequency threshold, for example, so that the value falls within the range of possible human-hearable frequencies (e.g., 20 Hz to 20 kHz), for example, by multiplying the value by a factor of 100 or other preset number. In this manner, a candidate pitch is chosen.

Next, the nearest MIDI note to the candidate pitch is located within the vocabulary datastore to determine the pitch value to include in the output. To create variety in the volume, a higher value may correspond to a louder volume. In particular, at step 1104, the process 1100 determines whether the brain wave frequency is diatonic in (or involves the notes for) a key of D major or in a key of A major. This may be achieved, for example, by comparing the candidate pitch to the pitches which are diatonic in a given key. The process 1100 may also include, at step 1106, obtaining appropriate vocabulary from a pitch vocabulary datastore. As shown, the vocabulary may include, for example, data fields indicating that a first tonal center corresponds to the key D major and a second tonal center corresponds to the key A major. The vocabulary obtained at step 1106 may determine which keys are sought in step 1104, for example.

If the answer at step 1104 is no (i.e. the brain wave frequency (candidate pitch) is not diatonic in one of the desired keys), the process 1100 continues to step 1108, where a nearby frequency candidate is calculated. The nearby frequency to the candidate pitch may be calculated, for instance, by rounding the candidate pitch up until it corresponds to a note that is a half-step higher. The calculated frequency candidate is then analyzed again at step 1104. This loop may continue until the analysis at step 1104 results in a “Yes” answer, or until the analyzed frequency is diatonic in the key of D major or A major. Once that occurs, the process 1100 continues to step 1110, as shown in FIG. 11. At step 1110, the frequency that is diatonic in either D major or A major is used as is, and converted to an appropriate MIDI note (or pitch) number using the standard mathematical function for converting a frequency (expressed in hertz) to a MIDI note value.

At step 1112, the EEG power level of the brain wave may also be used to set the velocity or volume of the audio representation. For example, the MIDI velocity may be calculated for the brain wave frequency by using the MIDI pitch number (e.g., 0-127) as the velocity. This will make higher pitches louder and lower pitches softer. As another example, the velocity may be based on the ratio of Alpha strength to Beta strength in microvolts, so that the stronger Alpha is relative to Beta, the louder the signal. In some cases, the developer of the processing plug-in may implement different algorithms in an effort to find what mapping of brain waves to velocity creates the most effective creative circuit. The MIDI pitch or note number and the MIDI velocity number may be packaged in an output array and, at step 1114, may be sent to an audio engine, such as, e.g., audio production module 118 of FIG. 1, for generating an appropriate audio output based thereon. The audio output may be delivered to the user via an audio output device of the system, such as, e.g., audio output device 114 shown in FIG. 1.

The above is just one example, as many other algorithms could be used. For instance, another possibility is one could perform a mapping using the amplitude of a sampled interval, and scaling that value up to determine pitch, while using the power in microvolts to determine velocity. So, for instance, 9 Hz might scale up to 440 Hz, which maps to MIDI note 120(A), and the power of 0.8 microvolt (μV) might scale up to a velocity of 6. The techniques described herein are not limited to one particular algorithm, but allow for plugging in of different methods to suit the needs of a particular use case.

FIG. 12 illustrates an exemplary process 1200 for selecting appropriate visual representations (e.g., visual angle or ray, shape, and color parameters) for incoming bio/neurometric data using information retrieved from a parameter file and vocabulary datastore, in order to convert EEG data into images or other visual output, in accordance with embodiments. As an example, the process 1200 may be used by any of the creative circuit systems 100, 500, 600, 700, 800, and/or 900, or the creative circuit module included therein, to map received B/N data to appropriate color, shape, and angle values, or other visual representations. In particular, the process 1200 may be carried out using one or more components of the creative circuit module (e.g., the module 200 shown in FIG. 2 and/or the module 300 shown in FIG. 3), such as, for example, a processing plug-in included therein, or using any computing device having corresponding software stored on a computer readable medium and executable by one or more computer processors. In the case of multiple input B/N streams from multiple users, the process 1200 may be concurrently carried out for each stream of B/N data (or each user) by the appropriate processing plug-in (e.g., as shown in FIG. 10). The parameter file and/or vocabulary datastore may be substantially similar to at least one of the TCCS parameter file 410 shown in FIG. 4B and the TCCS parameter file 1010 and vocabulary datastore 1011 shown in FIG. 10, or otherwise use the techniques described herein with respect to vocabulary usage and parameter selection.

In general, the image selector process 1200 shown in FIG. 12 may be analogous to the functions performed by the pitch selector process 1100 for generating an audio output. For instance, the vocabulary datastore may contain a repository of allowed geometric symbols and colors, either pre-defined statically or gained through image analysis of incoming visual data. In the illustrated embodiment, for example, the list of shapes in the vocabulary datastore includes Circle, Triangle, and Cube; the range of colors in the vocabulary includes Magenta, Black, and Purple; and the range of angles includes 15 degrees, 20 degrees, and 45 degrees. The use of a parameter file allows one to specify, for a given configuration, how biometric/neurometric data should be mapped to the audio and visual domains.

In embodiments, the logic represented by process 1200 may be included in the “EEGMuse2ImageSelector” algorithm described above with respect to FIG. 9, for example. As shown in FIG. 12, the image selector process 1200 may begin at step 1202 with receipt of an incoming data item, such as, e.g., a brain wave frequency with power of 0.9 μV in the Alpha range. The brain wave frequency may be scaled up so that it falls within a valid MIDI velocity range (e.g., 0-127), or at least above a predetermined threshold. Use of the MIDI ranges here, even though not for an audio output, can allow for standardization of the numeric representations across both the audio and video engines and thus, help generate a coherent output from both.

Next, the parameter file and vocabulary datastore may be referenced in order to obtain appropriate image values for the input data. For example, at step 1204, the parameter file may indicate that the Alpha range power data should be rendered as angles (or rays) and should be mapped to a specific shape and color based on the image vocabulary provided by the vocabulary datastore at step 1206. In the illustrated embodiment, the vocabulary datastore placed the shapes and colors in arrays ordered by relative frequency of occurrence of those representations within the visual data extracted from the user-provided data (e.g., as shown in FIG. 13), and the parameter file indicates that values in the Alpha frequency range should be mapped to array slot 1 for both the shape and color array, as shown in FIG. 12. In other embodiments, the array slots may be ordered based on other factors, such as, for example, color parameters (e.g., hue, lightness/darkness level, saturation, etc.).

At step 1208, a scaling function can be applied to the power level of the input data value, resulting in a value between for instance 0 and 360 degrees, and the nearest value in the angle vocabulary provided by the vocabulary datastore may be chosen. So, for instance, a scaled value of 16 for the input power level would result in rendering a 15 degree ray at step 1210, as 16 is closer to 15 than 20. Thus, based on the rules provided in the exemplary process 1200, where the shape array is [Circle, Triangle, Cube] and the color array is [Magenta, Black, Purple], for an input brain wave frequency have 0.9 μV of Alpha power, the “EEGMuse2ImageSelector” algorithm will output a rendering of a ray angled at 15 degrees and embedded in a magenta-colored circle. As will be appreciated, other outputs may be obtained using different image vocabulary and parameter files.

FIG. 13 illustrates an exemplary process 1300 for creating a feedback loop as a single user produces audio content while wearing an EEG headset and listens to an audio output generated based on the collected EEG data and captured audio content, in accordance with embodiments. The process 1300 may be carried out using a system that comprises a bio/neurometric data collecting headset to be worn by a user (such as, e.g., an EEG headset as shown in FIG. 13), an audio input device (such as, e.g., a microphone) for detecting audio content representing a live performance of the user, a computing device (such as, e.g., a tablet or a laptop, desktop, or server computer) for creating a coherent, audio output based on the detected audio and the data collected by the headset, and one or more audio output devices (such as, e.g., audio speakers or a personal listening device) for presenting the audio output to the user. Portions of the process 1300 may be carried out by a creative circuit module (such as, e.g., the creative circuit module 200 shown in FIG. 2) included in the computing device. In some embodiments, the process 1300 may be implemented using the creative circuit system 100 shown in FIG. 1 and/or the creative circuit system 600 shown in FIG. 6.

As shown in FIG. 13, the process 1300 may begin at step 1302 with detection of user-provided audio content, or audio generated by a live performance of the user, using the audio input device (e.g., audio input device 110 shown in FIG. 1). The audio content may be a vocal performance, such as, e.g., spoken word or singing, or a musical performance, such as, e.g., playing an instrument (like the musical instrument 811 shown in FIG. 8). The audio content may be provided to a computing device (such as, e.g., computing device 106 shown in FIG. 1) for analysis by a creative circuit module included therein (such as, e.g., creative circuit module 108 shown in FIG. 1).

At step 1304, the module may identify one or more aspects of the input signal by, for example, extracting metadata from the user-provided content, such as, e.g., volume, pitch, etc., and may use these aspects to create a vocabulary. As an example, the creative circuit module may include an audio interface for receiving the detected audio content, a TCCS spectral analyzer for analyzing the incoming audio, a vocabulary datastore for creating new vocabulary based on the live input data, and a TCCS parameter file for setting the vocabulary and other parameters to be used by a processing plug-in for generating the output, as shown in steps 1014, 1012, 1011, and 1010, respectively, of FIG. 10. In such cases, the spectral analysis techniques described herein with respect to FIG. 10 and otherwise may be used to extract volume, pitch, and other metadata from the user-provided content and deposit the extracted information into an array, thus creating the new vocabulary. The resulting vocabulary may be provided to a processing plug-in also included in the module (such as, e.g., PPI 206 shown in FIG. 2).

At step 1306, bio/neurometric data may be collected from the user, or more specifically, the EEG headset or other B/N data collection device worn by the user, and provided to the creative circuit module for analyzing the B/N data. It should be appreciated that in some cases, two or more of the steps 1302, 1304, and 1306 may occur simultaneously, or nearly simultaneously, while in other cases, certain steps may occur before others. The process 1300 is not limited to an exact order of these steps, so long as a feedback loop is created.

At step 1308, the processing plug-in included in the creative circuit module creates a new audio output based on the metadata generated at step 1304 and the EEG data collected at step 1306. For example, the processing plug-in may use all or portions of the process 1000 shown in FIG. 10 and/or the processes 400 and 420 shown in FIGS. 4A and 4B, respectively, in order to create the audio output. The audio output may be delivered to, or played for, the user through one or more audio output devices (such as, e.g., audio output device 114 shown in FIG. 1). In this manner, the user is able hear sounds generated based on their own B/N data and live audio content, which may then influence the user's continued thought and content creation, thus creating a feedback loop.

FIG. 14 illustrates an exemplary creative circuit system 1400 configured to create a coherent output based on multiple inputs and use targeting logic to direct the output to an appropriate output generator, in accordance with embodiments. As shown, the creative circuit system 1400 comprises a computing device 1406 configured to receive various types of inputs, including bio/neurometric (B/N) data and user-provided content, and provide the received inputs to select components of a creative circuit module 1408 included in the device 1406 for processing the inputs. Certain components of system 1400 may be substantially similar to corresponding components of the creative circuit system 100 shown in FIG. 1 (or other systems described herein) and therefore, will not be described in detail here for the sake of brevity. For example, the computing device 1406 may be substantially similar to the computing device 106 shown in FIG. 1, and the creative circuit module 1408 may be substantially similar to the module 108 shown in FIG. 1, the module 200 shown in FIG. 2, and/or the module 300 shown in FIG. 3. In some cases, the process 1300 shown in FIG. 13 may be implemented using components of the system 1400.

In embodiments, the creative circuit system 1400 includes a bio/neurometric data input system 1402 communicatively coupled to the computing device 1406 (e.g., via a wired or wireless connection) for providing live and/or pre-recorded bio/neurometric data to the creative circuit module 1408. The B/N input system 1402 may include one or more B/N data collection devices configured to collect one or more types of B/N data, such as, e.g., EEG data, heart rate data, blood pressure data, galvanic skin response data, etc. In some embodiments, the B/N input system 1402 may include an EEG headset, such as, e.g., the Muse 2 headset, and/or other data collection device similar to the B/N data collector 102 shown in FIG. 1. In some embodiments, the B/N input system 1402 may also include a data receiver communicatively coupled to the B/N data collection device and configured to convey B/N data received from the collection device to the computing device 1406, for example, similar to the B/N data receiver 104 shown in FIG. 1.

As shown in FIG. 14, the B/N input system 1402 may be configured to transmit a live B/N data stream to the computing device 1406, such as, for example, B/N data obtained in real-time from a user wearing an EEG headset or other B/N data collection device (e.g., as shown in FIG. 5). The B/N input system 1402 may also be configured to provide pre-recorded B/N data files to the creative circuit module 1408. For example, in some cases, the B/N data may have been previously collected by a B/N data collection device of the B/N input system 1402. In other cases, the B/N data may have been obtained by the B/N input system 1402 from another source. In either case, the B/N data files may be stored in a memory of the B/N input system 1402 until requested by the computing device 1406. In some embodiments, the B/N input system 1402 may include a file manager, similar to the file manager 312 shown in FIG. 3, for storing the pre-recorded B/N data for future use.

As shown in FIG. 14, the creative circuit system 1400 also includes an audio/visual input system 1409, similar to the audio/visual input system 109 shown in FIG. 1. In embodiments, the audio/visual input system 1409 can include at least one audio input device, such as, e.g., a microphone, for capturing live audio data or signals (e.g., similar to the audio input device 110 shown in FIG. 1), and at least one video input device, such as, e.g., a camera, video recorder, or webcam, for capturing live images, video, or other visual data (e.g., similar to the video input device 112 shown in FIG. 1).

As shown, the audio/visual system 1409 can be configured to transmit a live video stream, a live audio stream, pre-recorded audio data, and/or pre-recorded video data to the computing device 1406. In some embodiments, the audio/visual system 1409 may transmit other types of non-live data to the computing device 1406 that is not necessarily pre-recorded, such as, e.g., an audio track or video file generated by a computer and transmitted directly to the computing device 1406, etc. The live streams may include audio and/or video data captured by the audio/visual system 1409 and transmitted to the computing device 1406 in real-time. In some cases, the pre-recorded data may have been previously collected by the audio and/or video input devices of the system 1409. In other cases, the pre-recorded audio and/or video data may have been obtained by the audio/visual input system 1409 from another source (e.g., downloaded). In either case, the non-live audio and/or video data may be stored in a memory of the audio/visual input system 1409 until requested by the computing device 1406.

The creative circuit module 1408 comprises various components for receiving and processing the incoming data, whether live, pre-recorded, or otherwise, including a spectral analysis module 1430 for analyzing all incoming audio data and an image analysis module 1432 for analyzing all incoming video data. The spectral analysis module 1430 may be configured to extract metadata (e.g., pitch, volume, etc.) from the incoming audio data, or otherwise identify aspects of said data, and create an appropriate audio vocabulary based thereon, for example, similar to the TCCS spectral analyzer 1012 shown in FIG. 10 and described herein. The image analysis module 1432 may apply similar to techniques for extracting metadata (e.g., shape, color, angle, etc.) from the video data and creating an image vocabulary based thereon.

As shown in FIG. 14, each of the modules 1430 and 1432 may be configured to provide the newly acquired vocabulary to a vocabulary datastore 1434 of the creative circuit module 1408. As such, the vocabulary datastore 1434 may be dynamically populated with a common vocabulary that can be applied to all incoming B/N data to create a coherent output based thereon. In some embodiments, the vocabulary datastore 1434 may be similar to the vocabulary datastore 1011 shown in FIG. 10 and may include, for example, a pitch vocabulary datastore as shown in FIG. 11 and a shape vocabulary datastore as shown in FIG. 12. The creative circuit module 1408 also includes one or more TCCS parameter files 1436 configured to store parameter information and threshold information for use during output generation, for example, similar to the TCCS parameter file 1010 shown in FIG. 10. The parameter file 1436 may include a set of instructions for applying the common vocabulary to the incoming data, for example, as shown in FIG. 12.

The creative circuit module 1408 further includes a selection module 1438 configured to receive all B/N data, live or pre-recorded, from the B/N input system 1402, parameter information from the TCCS parameter file 1436, and vocabulary information from the vocabulary datastore 1434. Based on the received information, the selection module 1438 may create an output array comprising a plurality of data field (e.g., pitch, volume, image) and a value selected for each field. The data fields may be set or determined by the parameter file. The values for each data field may be selected by the module 1438 using one or more algorithms for mapping the received B/N data to the common vocabulary received from the vocabulary datastore 1434. The algorithm(s) may be stored in the module 1438 and may be similar to, for example, the processes 1100 and 1200 shown in FIGS. 11 and 12, respectively. In some embodiments, the selection module 1438 may be implemented as a processing plug-in, such as, e.g., PPI 206 shown in FIG. 2, and may be configured to carry out the process 420 shown in FIG. 4B.

As shown in FIG. 14, the creative circuit module 1408 further includes a targeting module 1440 configured to receive the output array from the selection module 1438 and determine which output generation engine may be best suited for generating an audio/visual output based on the received output array. In embodiments, the targeting module 1440 may be called or utilized only if a predetermined threshold is hit for an input data sample, wherein the threshold is provided by the parameter file 1436. The targeting module 1440 may include one or more algorithms for carrying out these and other operations and may be implemented as a plug-in, in some embodiments.

The output generation engines may include, for example, an audio engine 1418 that is substantially similar to the audio production module 118 shown in FIG. 1, an audio/visual engine 1419 that is substantially similar to the audio/visual engine 619 shown in FIG. 6, and a visual engine 1420 that is substantially similar to the graphics/animation engine 120 shown in FIG. 1. Other output generation engines may also be included to accommodate other types of output generation techniques, as will be appreciated. In some embodiments, the engines 1418, 1419, and 1420 may be included in the computing device 1406 and in communication with the creative circuit module 1408, as shown in FIG. 14. In other embodiments, the engines 1418, 1419, and 1420 may be included within the creative circuit module 1408, itself.

The visual engine 1420 may be configured to provide a visual output (e.g., images, videos, or other visuals) generated based on the output array received from the targeting module 1440, to a visual output device 1416 for delivering the visual output to the user, similar to the visual output device 116 shown in FIG. 1. Likewise, the audio engine 1418 may be configured to provide an audio output (e.g., music, voice, or other sounds) generated based on the output array received from the targeting module 1440, to an audio output device 1414 for delivering the audio output to the user, similar to the audio output device 114 shown in FIG. 1. And the audio/visual engine 1419 may be configured to provide outputs generated based on the output array received from the targeting module 1440 to both devices, namely an audio output to the audio output device 1414 and a visual output to the visual output device 1416. In some embodiments, the visual output device 1416 and the audio output device 1414 may be external devices (e.g., an external monitor and an external audio system) communicatively coupled to the computing device 1406, as shown in FIG. 14. In other embodiments, one or more of the visual output device 1416 and the audio output device 1414 may be integrated into the computing device 1406 (e.g., a native speaker or display screen).

Further details on the use of a parameter file to specify which plug-ins and audio/visual engines to use during operation of the system 1400 is provided in FIG. 15, which depicts a table 1500 listing the name of exemplary TCCS parameters, a description of each, and an explanation of how each parameter is used in audio outputs and video outputs. In table 1500, the given TCCS parameter may be used in the audio output to influence data values passed to the sound generation system, for example, via MIDI, OSC, or other audio streaming protocols, and may be used in the video output to influence data values passed to the visual generation system, for example, via OSC or other streaming data protocols. An exemplary parameter file 1800 is shown in FIG. 18.

In traditional neurofeedback applications, targets or thresholds are defined for various neurometric data which produce new visual or audio stimuli if hit. The system 1400 supports this through the use of the targeting module 1440, or a targeting plug-in, which can be inserted into the flow and can be customized for different use cases. Due to the support for multiple threads, multiple input types, and multiple users, the system 1400 is able to define heterogeneous group targets. So, for instance, the targeting plug-in 1440 can be written to specify that if the group average for power in the Alpha range is over 0.8 microvolts (wherein this threshold is specified in the parameter file 1436), then send output MIDI to a second, different MIDI channel (which is also specified in the parameter file 1436). For example, the second MIDI channel may be ringing a bell, whereas the first MIDI channel may be playing a violin, piano, or other instrument. The conditions under which the threshold is considered met could take into account multiple types of bio/neurometric data input, as well as audio input.

In some embodiments, one or more aspects of the system 1400 may be controlled by a human attendant 1442 to allow for real-time modification of parameters or settings according to the needs of a given use case. In such embodiments, the system 1400 may be further configured to receive an input from the attendant 1442 and adjust one or more settings based on the input. For example, the attendant 1442 may change the instrument that is assigned to a given MIDI channel (e.g., from bell to organ) upon listening to an audio output provided to one or more users or observing the reaction of a user.

As shown in FIG. 14, the computing device 1406 may include a user interface 1444 for enabling the attendant 1442 to interact with the creative circuit module 1408. For example, the user interface 1444 may be configured to receive inputs from the attendant 1442 and provide those inputs to the module 1408. The user interface 1444 may be in communication with a processor of the computing device 1406 (such as, e.g., processor 124 shown in FIG. 1) and may be implemented in hardware, software, or a combination thereof. For example, the user interface 1444 may be implemented as a console or electronic control panel comprising one or more input devices (e.g., keyboard, button, slider, dial, joystick, mouse, touchscreen, microphone, etc.) for receiving the attendant's inputs, and one or more software programs, executed by the processor, for interacting, and exchanging data, with the creative circuit module 1408. The user interface 1444 may also include one or more output devices (e.g., display screen, speakers or other audio output device, etc.) for experiencing the outputs provided to the user, for observing the reactions of the user, and/or for viewing configurable settings of the creative circuit module 1408.

In some embodiments, the creative circuit module 1408 may analyze a received input to determine which of its component(s) require modification and may send the input to the appropriate component. In other embodiments, the user interface 1442 may include separate interfaces (or consoles) for manipulating each of the targeting plug-in 1440, the selection module (or processing plug-in) 1438, the audio engine 1418, the video engine 1420, and the audio/visual engine 1419, so that the received input can be directly routed to the appropriate component.

In embodiments, the system 1400 may be configured for various different modes of operation. The following paragraphs describe nine exemplary modes of operation. It should be appreciated, however, that other modes of operation are also contemplated in accordance with the teachings herein. Each of the nine modes is described below with examples. The modes labeled “Assisted” require participation of the human operator or attendant 1442, referred to as a “Circuit Moderator” (CM), and require that the individual have access to the user interface 1444 capable of manipulating parameters available in each subsystem, referred to as a “Console.” While the below discussion assumes existence of a targeting plug-in console, a processing plug-in console, an audio engine console, and a video engine console, other embodiments may include one console for controlling all components of the creative circuit module 1408.

Mode 1: Real-Time, Unassisted, Untargeted Operation and Mode 2: Real-Time, Unassisted, Targeted Operation

In either of these modes, the user or users wear the headset or other biometric data capturing equipment, and the data is streamed in real-time from the biometric data source(s) to the Theta-u Creative Circuit System (TCCS), such as, e.g., the creative circuit system 1400 shown in FIG. 14.

Starting State: Before the data flow starts, the TCCS system must be started, initialized with values and algorithms as specified in the TCCS parameter file, and the Audio and Video engines specified in the TCCS parameter file must be running, waiting for input and also set up with desired parameters and configurations.

Processing: The Processing Plug-in indicated in the TCCS parameter file is called for each sample received in real-time. The output values are streamed in real-time to the Audio and Video Engines specified in the parameter file. Each engine renders appropriate audio and video output based on the real-time data. In addition to applying the algorithms listed above as described for each TCCS parameter, in Targeted Mode, the system will check to see if rules described in the Threshold file are met, and if so, will render appropriate output. In Untargeted mode, no changes are made to the output data programmatically.

Examples of Usage

Unassisted, Untargeted Operation (or Mode 1): A user enjoys cello-piano-flute combination, so Audio engine is setup with 3 tracks, each of which will receive data over MIDI channel 1. The system is launched with ProcessingPlugIn-1 as described above, and the user hears output in real-time. The music evolves over the 10 minutes as the user adjusts to which thought patterns produce which result, and becomes able to modify the output to become more and more pleasurable as the brain adjusts to patterns which produce satisfying musical output.

Unassisted, Targeted Operation (or Mode 2): As in example above, a cello-piano-flute combination is setup, and the system is launched with ProcessingPlugIn-1. In addition, a threshold file is created which indicates that every time the average power in the Alpha range is above 0.05 microvolts (μV) for over 500 milliseconds (ms) in the octave, the pitch representing Alpha power will be raised one octave. Also, this value will be sent over MIDI channel 2, a channel reserved for targeted data, allowing the audio engine to treat this data with specific instrumentation. This example shows that the TCCS system can be used to create a neurofeedback system usable by therapists, similar to systems such as the @Nexus system.

Mode 3: Real-Time, Assisted, Untargeted Operation and Mode 4: Real-Time, Assisted, Targeted Operation

In either of these modes, the user or users wear the headset or other biometric data capturing equipment, and the data is streamed in real-time from the biometric data source(s) to the ThetaU Creative Circuit System (TCCS), such as, e.g., the creative circuit system 1400 shown in FIG. 14.

Starting State: Before the data flow starts, the TCCS system must be started, initialized with values and algorithms as specified in the TCCS parameter file, and the Audio and Video engines specified in the TCCS parameter file must be running, waiting for input and also setup with desired parameters and configurations. A human attendant, i.e. the Circuit Moderator (CM), is watching and potentially making changes through one or more of the control consoles of the TCCS, such as, e.g., Processing PlugIn Console, Targeting PlugIn Console, Audio Engine Console, and Video Engine Console.

Processing: The Processing Plugin indicated in the TCCS parameter file is called for each sample received in real-time. The output values are streamed in real-time to the Audio and Video Engines specified in the parameter file. Each engine renders appropriate audio and video output based on real-time data. In addition to applying the algorithms listed above as described for each TCCS parameter, in Targeted Mode, the system will check to see if rules described in Threshold file are met, and if so, will render appropriate output. In Untargeted mode, no changes are made to the output data programmatically. As system processing proceeds, the CM may modify parameters of any of the components, including changing values in the TCCS parameter file, changing instrumentation in the Audio Engine, changing parameters such as field of view or zoom level or animation speed in the Video Engine, or changing values in the Targeting file. All of these changes will take effect in real-time.

Examples of Usage

Assisted, Untargeted Operation (Mode 3): A user enjoys cello-piano-flute combination, so Audio engine is setup with three tracks. CM starts session with only cello track active and uses an iterative loop approach with audio engine to provide all three tracks. For example, after three minutes of cello only, which is being recorded in real-time, CM introduces piano with “backing track” of initial cello, allowing user's brain to create a piano track adjusting to input stimuli of initial cello track. CM records this piano track for three minutes. CM then plays back cello-piano track to user while introducing flute track and records flute as it responds to brain signals for three minutes. At this point, the user's brain has recorded all three instruments individually, creating a three minute cello-piano-flute composition, which the user has experienced hearing as it was incrementally created. At this point, the CM turns on recording for all three tracks simultaneously and records for three more minutes as the user's brain, consciously or unconsciously, adjusts to the input to achieve a desired audio result. The CM then stops the system, having facilitated the creation of a six minute composition produced by the user's mind.

Assisted, Targeted Operation (Mode 4): A user enjoys cello-piano-flute combination, so Audio engine is setup with three tracks, all of which will receive data over MIDI channel 1. The system is launched with selected ProcessingPlugIn and user hears output in real-time. In addition, initially a threshold file is created which indicates that every time the average power in the Alpha range is above 0.05 μV for over 500 ms in the octave, the pitch representing Alpha power will be raised one octave. Also, this value will be sent over MIDI channel 2, allowing the audio engine to treat this data with specific instrumentation. The CM adjusts the Audio Engine to place the flute track on channel 2, so it becomes the reinforcing instrument for this Alpha threshold. After three minutes, the CM introduces another threshold, indicating that every time the Beta range is below 0.07 μV for over 500 ms, the pitch representing Beta power will be lowered one octave. Also, this value will be sent over MIDI channel 3, allowing the audio engine to treat this data with specific instrumentation. The CM adjusts the Audio Engine to place the piano track on channel 3, so it becomes the reinforcing instrument for this Beta threshold. After observing the user's response for three minutes via the TCCS console, the CM notices difficulty achieving the Beta response, and changes the threshold target to target below 0.09 μV rather than 0.07 μV.

Mode 5: Playback, Unassisted, Untargeted Operation and Mode 6: Playback, Unassisted, Targeted Operation

In either of these modes, a human file containing biometric data from a session where the user or users wore a headset and/or other biometric data capturing equipment, and the data was recorded, is opened and processed by the ThetaU Creative Circuit System (TCCS), such as, e.g., creative circuit system 1400 shown in FIG. 14.

Starting State: Before the data flow starts, the TCCS system must be started, initialized with values and algorithms as specified in the TCCS parameter file, and the Audio and Video engines specified in the TCCS parameter file must be running, waiting for input and also setup with desired parameters and configurations.

Processing: The Processing Plugin indicated in the TCCS parameter file is called for each sample found in the input file set. The output values are streamed to the Audio and Video Engines specified in the parameter file. Each engine renders appropriate audio and video output based on incoming data. In addition to applying the algorithms listed above as described for each TCCS parameter, in Targeted Mode, the system will check to see if rules described in Threshold file are met, and if so, will render appropriate output. In Untargeted mode, no changes are made to the output data programmatically. In playback mode, the targeting is obviously not going to have an effect on the input since it was pre-recorded; however, in this mode, it serves to introduce variety and possibilities for audio and visual highlighting of periods of the pre-recorded session where the brain was in a certain state.

Examples of Usage

Unassisted, Untargeted Operation (Mode 5): A user enjoys cello-piano-flute combination, so Audio engine is setup with three tracks, each of which will receive data over MIDI channel 1. The system is launched with ProcessingPlugIn-1 as described above, and the pre-recorded data is read in, processed, and streamed to the audio and video engines. The audio and video output is recorded, resulting in a composition sourced by the biometric data.

Unassisted, Targeted Operation (Mode 6): As in example above, a cello-piano-flute combination is setup, and the system is launched with ProcessingPlugIn-1. In addition, a threshold file is created which indicates that every time the average power in the Alpha range is above 0.05 μV for over 500 ms in the octave, the pitch representing Alpha power will be raised one octave. Also, this value will be sent over MIDI channel 2, a channel reserved for targeted data, allowing the audio engine to treat this data with specific instrumentation. This results in a composition with a new source of variety compared to the untargeted example, where the brain state of higher Alpha is highlighted through instrumentation and the higher octave.

Mode 7: Playback, Assisted, Untargeted Operation and Mode 8: Playback, Assisted, Targeted Operation

In either of these modes, a pre-recorded file containing biometric data from a session where the user or users wore a headset and/or other biometric data capturing equipment, and the data was recorded, is opened and processed by the ThetaU Creative Circuit System (TCCS), such as, e.g., the creative circuit system 1400 shown in FIG. 14.

Starting State: Before the data flow starts, the TCCS system must be started, initialized with values and algorithms as specified in the TCCS parameter file, and the Audio and Video engines specified in the TCCS parameter file must be running, waiting for input, and also setup with desired parameters and configurations. A human attendant, i.e. the Circuit Moderator (CM), is watching and potentially making changes through one or more of the control consoles of the TCCS, such as, e.g., a Processing PlugIn Console, Targeting PlugIn Console, Audio Engine Console, and Video Engine Console.

Processing: The Processing Plugin indicated in the TCCS parameter file is called for each sample found in the input file set. The output values are streamed to the Audio and Video Engines specified in the parameter file. Each engine renders appropriate audio and video output based on incoming data. In addition to applying the algorithms listed above as described for each TCCS parameter, in Targeted Mode, the system will check to see if rules described in Threshold file are met, and if so, will render appropriate output. In Untargeted mode, no changes are made to the output data programmatically. As system processing proceeds, the CM may modify parameters of any of the components, including changing values in the TCCS parameter file, changing instrumentation in the Audio Engine, changing parameters such as field of view or zoom level or animation speed in the Video Engine, or changing values in the Targeting file. All of these changes will take effect in real-time.

Examples of Usage

Assisted, Untargeted Operation (Mode 7): A user enjoys cello-piano-flute combination, so Audio engine is setup with three tracks. CM starts session with only cello track active and uses an iterative loop approach with audio engine to introduce the remaining tracks. After three minutes of cello only, which is being recorded in real-time, CM introduces piano with “backing track” of initial cello, allowing creation of a piano track. CM records this piano track for three minutes. CM then plays back cello-piano track while introducing flute track and records flute as it responds to incoming signals for three minutes. At this point the user's brain has recorded all three instruments individually, creating a three minute cello-piano-flute composition. At this point, the CM turns on recording for all three tracks simultaneously and records for three more minutes. The CM then stops the system, having facilitated the creation of a six minute composition with various segments of the input file overlaid against one another.

Assisted, Targeted Operation (Mode 8): A user enjoys cello-piano-flute combination, so Audio engine is setup with three tracks, each of which will receive data over MIDI channel 1. The user is also interested in highlighting their periods of high relaxation. After doing a dry run in unassisted mode and observing the average brain wave activity via the TCCS console, the CM creates a threshold file which indicates that every time the average power in the Alpha range is above 0.05 μV for over 500 ms in the octave, the pitch representing Alpha power will be raised one octave. Also, this value will be sent over MIDI channel 2, allowing the audio engine to treat this data with specific instrumentation. The CM adjusts the Audio Engine to place the flute track on channel 2, so it becomes the reinforcing instrument for this Alpha threshold. The CM runs the system with this threshold file in place and then changes the instrumentation by moving the piano to track 2, so both flute and piano react to the periods where the Alpha was higher. The CM, perhaps listening along with the patient, decides that this is the best instrumentation mapping and runs the system while recording the output, to have a completed composition to give to the user as an MP3 file.

Mode 9: Playback, Post-Processing Operation

In this mode, the biometric data from a recorded session can be processed in multiple passes, running the TCCS repeatedly with different parameter settings. For instance, in one run, note length might be set to 8, key to the key of D, and Tonal center to D. This will generate a set of MIDI files that can be imported into Logic Pro, or other Audio Engine, and laid against one another, and also a set of 3D model files that can be imported into Unity, or other Visual Engine. The 3D models are created using functions similar to those described for audio, with the output of each run of the processing plugin being a vertex or face, for example, as described in the OBJ file format developed by Wavefront Technologies. The resulting OBJ files can be imported into Unity. In another run, note length might be set to 4, key to the key of D, and tonal center to E, creating a Dorian Mode effect. All of the resulting MIDI and OBJ files can be used in combination. Also, this mode can be combined with any of the other modes above. For instance, a run could be done which generates OBJ and MIDI files; Logic Pro and Unity could be pre-loaded with these artifacts, creating a Unity Scene background; and then a playback, unassisted, targeted run (i.e. mode 6) could occur that animates this scene and overlays audio to the existing MIDI.

Note that in all modes of operation, interaction with musicians playing standard instruments is possible, whereby ensembles are reacting to the music produced by these instruments, which changes the brain output, which is heard by those musicians and which they can respond to, forming a creative circuit in this manner. Creative circuits can also be formed by a player with his own rendered brain output, by a player with the rendered output of others, including audience members, or by a player with others around him who are producing auditory or visual stimulation.

FIGS. 17A and 17B depict a table 1700 summarizing several possible examples of how a given creative circuit system (such as, e.g., the system 100 shown in FIG. 1) can be setup and used, in accordance with embodiments. It should be appreciated that the table 1700 does not provide an exhaustive list of uses and that other uses are also contemplated. Also, while the examples provided in table 1700 use EEG data, all examples could be setup with other biometric data input such as, e.g., heart rate, blood pressure or galvanic skin response, using techniques described herein.

Thus, the techniques described herein include a system capable of creating and using a static or dynamically changing “vocabulary,” predefined or generated in real-time, from live input and/or existing audio sources, as a common base to enable merging of bio/neurometric data from multiple people or sources (including previously generated brain wave or other bio/neurometric data files or data from animals) and generating a collaborative output that provides a coherent audio and/or visual result based on this common vocabulary. Possible use cases for such a system include, for example, a compositional system (where original music is composed from bio/neurometric data source); a live performance allowing the combination of live instruments, pre-recorded sources, and bio/neurometric data; therapeutic applications where, for instance, teams in a business setting learn about collaboration through creating a composition together, with each providing different brain wave contributions to the whole, which is used as a metaphor for working out roles and functions within the group; and “humanization” of computer generated audio to add variety for performers using such audio to accompany themselves.

In the context of this document, a “computer-readable medium” may be any means that can store, communicate, propagate, or transport data objects for use by or in connection with the system 100, or any other systems described here. The computer readable medium may be for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, propagation medium, or any other device with similar functionality. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection (electronic) having one or more wires, a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM, EEPROM, or Flash memory) (electronic), an optical fiber (optical), and a portable compact disc read-only memory (CDROM) (optical). Note that the computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and stored in a computer memory. Portions of the systems, modules and/or processes described herein can be embodied in any type of computer-readable medium for use by or in connection with an instruction execution system or apparatus, such as a computer.

Any process descriptions or blocks in figures should be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of the embodiments of the invention in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those having ordinary skill in the art.

It will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the novel and non-obvious techniques disclosed in this application. Therefore, it is intended that the novel teachings of the invention not be limited to the particular embodiments disclosed, but that they will include all embodiments falling within the scope of the appended claims. 

What is claimed is:
 1. A method of creating a coherent output based on biometric and/or neurometric data using a computing device comprising one or more processors and memory, comprising: receiving a first incoming signal from a bio-generated data sensing device worn by a first user; receiving, from an input system, a first input signal representing audio and/or visual content experienced by the first user during receipt of the first incoming signal; identifying one or more aspects of the first input signal using a spectral analyzer; using the one or more processors, populating a common vocabulary with one or more values determined based on the one or more identified aspects; determining, using the one or more processors, a first set of output values based on the first incoming signal, the common vocabulary stored in the memory, and a parameter file stored in the memory, the common vocabulary comprising a list of possible output values, and the parameter file comprising a set of instructions for applying the common vocabulary to the first incoming signal to derive the first set of output values; generating, using the one or more processors, a first output array comprising the first set of output values; and providing the first output array to an output delivery system configured to render the first output array as a first audio and/or visual output.
 2. The method of claim 1, wherein the first set of output values comprises output values corresponding to at least a first variable and a second variable, and determining the first set of output values comprises: selecting a first output value from the list of possible output values for the first variable based on a frequency band of the first incoming signal and the parameter file, and selecting a second output value from the list of possible output values for the second variable based on a power level of the first incoming signal and the parameter file.
 3. The method of claim 2, wherein the first and second variables are configured to control rendering of an audio output, the first variable being pitch and the second variable being velocity.
 4. The method of claim 2, wherein the first and second variables are configured to control rendering of a visual output.
 5. The method of claim 1, wherein the one or more aspects include a frequency component and a power component.
 6. The method of claim 5, wherein the one or more values include a pitch value determined based on the frequency component and a velocity value determined based on the power component.
 7. The method of claim 5, wherein the one or more values includes a shape value and a color value determined based on the frequency component and an angle value determined based on the power component.
 8. The method of claim 1, further comprising: receiving a second incoming signal from a second bio-generated data sensing device worn by a second user; and determining, using the one or more processors, a second set of output values based on the second incoming signal, the common vocabulary, and the parameter file; generating, using the one or more processors, a second output array comprising the second set of output values; and providing the second output array to the output delivery system.
 9. The method of claim 8, wherein the first set of output values comprises a first channel value for indicating a MIDI channel assigned to the first output array associated with the first user, and the second set of output values comprises a second channel value for indicating a MIDI channel assigned to the second output array associated with the second user.
 10. The method of claim 8, further comprising receiving a second input signal from the an audio/visual input system, the second input signal representing content produced by the second user.
 11. The method of claim 1, further comprising: generating a feedback output array upon receiving a feedback signal from the first bio-generated data sensing device, the feedback signal being generated responsive to the first user experiencing the first audio and/or visual output, wherein the feedback output array comprises a set of output values determined based on the feedback signal, the common vocabulary, and the parameter file, and wherein the feedback output array is provided to the output delivery system for rendering the feedback output array as a second audio and/or visual output.
 12. The method of claim 1, wherein the first input signal is spoken word recited by the first user for creating a hypnotic suggestion.
 13. The method of claim 1, wherein the first input signal is an audio track.
 14. The method of claim 1, wherein the first set of output values comprises Musical Instrument Digital Interface (“MIDI”) data.
 15. The method of claim 8, wherein the output delivery system is further configured to simultaneously render the first and second output arrays as the first audio and/or video output.
 16. The method of claim 10, further comprising identifying one or more aspects of the second input signal using the spectral analyzer; and additionally basing the common vocabulary on the one or more aspects of the second input signal.
 17. The method of claim 14 wherein the MIDI data comprises at least one of a MIDI pitch number, a MIDI velocity number, and a MIDI channel number.
 18. A system, comprising: a first bio-generated data sensing device worn by a first user and configured to detect a first electrical signal representing biometric and/or neurometric data of the first user; a second bio-generated data sensing device worn by a second user and configured to detect a second electrical signal representing biometric and/or neurometric data of the second user; a memory configured to store a parameter file and a common vocabulary; one or more processors configured to: determine a first set of output values based on the detected signal, the common vocabulary, and the parameter file; determine a second set of output values based on the second electrical signal, the common vocabulary, and the parameter file; generate a first output array comprising the first set of output values; and generate a second output array comprising the second set of output values; and an output delivery system configured to render the first output array as a first audio and/or visual output and the second output array as the second audio and/or visual output, wherein the common vocabulary comprises a list of possible output values, and the parameter file comprises a set of instructions for applying the common vocabulary to the detected signal to derive the first set of output values.
 19. The system of claim 18, wherein the first bio-generated data sensing device is a headset configured to collect electroencephalography (“EEG”) signals of the first user.
 20. The system of claim 18, wherein the output delivery system comprises an audio engine configured to generate an audio output signal based on the first output array and provide said signal to an audio output device.
 21. The system of claim 18, wherein the first set of output values comprises Musical Instrument Digital Interface (“MIDI”) data for generating an audio output signal.
 22. The system of claim 18, wherein the output delivery system comprises a visual engine configured to generate a visual output signal based on the output array and provide said signal to a display device.
 23. The system of claim 22, wherein the first set of output values corresponds to a plurality of visual variables for generating the visual output signal, the visual variables comprising geometric shape, color, and angle.
 24. The system of claim 18, further comprising an input system configured to provide user-provided content to the one or more processors, and a spectral analyzer configured to identify one or more aspects of the user-provided content, wherein the one or more processors is further configured to generate the common vocabulary based on the identified aspects.
 25. The system of claim 24, wherein the input system comprises a microphone configured to capture audio signals representing an audio component of the user-provided content.
 26. The system of claim 24, wherein the input system comprises a camera configured to capture video signals representing a visual component of the user-provided content.
 27. The system of claim 18, wherein the first set of output values comprises a first channel value for indicating a MIDI channel assigned to the first output array associated with the first user, and the second set of output values comprises a second channel value for indicating a MIDI channel assigned to the second output array associated with the second user.
 28. The system of claim 18, wherein the common vocabulary comprises a pitch vocabulary for selecting different musical notes based on different frequency bands of the detected signal.
 29. The system of claim 18, wherein the common vocabulary comprises a shape vocabulary for selecting different visual characteristics based on various aspects of the detected signal.
 30. The system of claim 18, wherein the output delivery system is further configured to render the first output array as a first audio and/or visual output and the second output array as the second audio and/or visual output simultaneously.
 31. The system of claim 24, wherein the user-provided content from which the spectral analyzer is configured to identify the one or more aspects comprises content provided by the first user and content provided by the second user.
 32. A system comprising: a first bio-generated data sensing device worn by a first user and configured to detect a first electrical signal representing biometric and/or neurometric data of the first user; a memory configured to store a parameter file and a common vocabulary; one or more processors configured to: determine a first set of output values based on the detected signal, the common vocabulary, and the parameter file; generate a first output array comprising the first set of output values; and generate a feedback output array upon receiving a feedback signal from the first bio-generated data sensing device, the feedback signal being generated responsive to the first user experiencing a first audio and/or visual output; and an output delivery system configured to render the first output array as the first audio and/or visual output; wherein the common vocabulary comprises a list of possible output values, and the parameter file comprises a set of instructions for applying the common vocabulary to the detected signal to derive the first set of output values; wherein the feedback output array comprises a set of output values determined based on the feedback signal, the common vocabulary, and the parameter file, and wherein the output delivery system is further configured to render the feedback output array as a second audio and/or visual output. 